Redis新数据类型

新数据类型

Bitmaps

命令

setbit

实例

getbit

实例

bitcount

实例

bitop

实例

Bitmaps与set 对比

HyperLogLog

命令

pfadd

实例

pfcount

实例

pfmerge

实例

Geospatial

命令

geoadd

实例

geopos

实例

geodist 

实例

georadius

实例


Bitmaps

Ⅰ.Bitmaps 本身不是一种数据类型,实际上它就是字符串(key-value ),但是它可以对字符串的位进行操作。
Ⅱ.Bitmaps 单独提供了一套命令,所以在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。 可以把 Bitmaps 想象成一个以位为单位的数组数组的每个单元只能存储0和1,数组的标在 Bitmaps 中叫做偏移量。

命令

setbit

setbit<key><offset><value>设置 Bitmaps 中某个偏移量的值(0或1)

offset:偏移量从0开始

实例

没设置的都为0

getbit

getbit<key><offset>获取 Bitmaps 中某个偏移量的值

获取键的第 offset 位的值(从0开始算)

实例

bitcount

统计字符串被设置为1的 bit数。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。start 和 end 参数的设置,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,start、end 是指 bit 组的字节的下标数,二者皆包含。

bitcount<key>[start end]统计字符串从 start 字节到 end 字节比特值为1的数量 

实例

bitop

bitop and(or/not/xor)<destkey> [key...]

bitop 是一个复合操作,它可以做多个 Bitmaps的and(交集)、or(并集)、 not(非)、xor(异或)操作并将结果保存在 destkey 中。

实例

Bitmaps与set 对比

所以数据多时Bitmaps才更省空间

HyperLogLog

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。

命令

pfadd

pfadd <key>< element>[element.] 添加指定元素到 HyperLogLog 中

实例

这里还可以同时加多个"" ""

       将所有元素添加到指定 HyperLogLog 数据结构中。如果执行命令后 HLL估计的近似基数发生变化,则返回1,否则返回 0。

pfcount

pfcount<key> [key ….]计算 HLL的近似基数,可以计算多个 HLL,比如用 HLL 存储每天的 UV,计算一周的 UV 可以使用7 天的 UV 合并计算即可

实例

pfcount hll1 "redis"

pfmerge

pfmerge<destkey><sourcekey>[sourcekey ..]将一个或多个 HLL 合并后的结果存储在另一个HLL中,比如每月活跃用户可以使用每天的活跃用户来合并计算可得

实例

将hll1和hll2合并到hll3

Geospatial

命令

geoadd

gegadd<key>< longitude><latitude><member> [longitude latitude member...] 添加地理位置(经度,纬度,名称)。

实例

geopos

geopos <key><member>[member...]获得指定地区的坐标值

实例

geoadd china:city shanghai

geodist 

geodist<key><member1><member2>[m|km|ft|mi] 获取两个位置之间的直线距离

实例

m 表示单位为米[默认值]。

km 表示单位为千米。

mi 表示单位为英里。

ft 表示单位为英尺。

georadius

georadius<key>< longitude><latitude>radius m|km|ft|mi 以给定的经纬度为中心
找出某一半径内的元素。

实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值