1. Bitmaps(主要用于统计活跃度)
1. 特点
2. 常用命令
setbit <key> <offset> <value> 设置偏移量对应的值
getbit <key> 获取指定位置的值
bitcount <key> [start][end] 获取<key>对应的1的数量
#联合操作
bitop and/or/not/xor <newkey> <key1> <key2> 将key1和key2的bitmap交集,对应到newkey中 ,返回值为byte(长度÷8)
127.0.0.1:6379> setbit jack 1 1
(integer) 0
127.0.0.1:6379> setbit jack 13 1
(integer) 0
127.0.0.1:6379> getbit jack 1
(integer) 1
127.0.0.1:6379> getbit jack 4
(integer) 0
127.0.0.1:6379> bitcount jack
(integer) 2
2. HyperLogLog (用于统计不重复元素个数,基数问题)
- 通过更小的内存,计算更大的基数
- 只会根据输入元素计算基数,并不会存储元素,因此不能返回输入元素
- 常用命令
pfadd <key> <value> 加入元素
pfcount <key> 统计基数
pfmerge <distkey> <sourcekey1> <<sourcekey2> 将sourcekey中的基数添加到distkey中(自带去重)
127.0.0.1:6379> pfadd k1 q
(integer) 1
127.0.0.1:6379> pfadd k1 e
(integer) 1
127.0.0.1:6379> pfadd k1 e
(integer) 0
127.0.0.1:6379> pfcount k1
(integer) 2
127.0.0.1:6379> pfadd k2 e
(integer) 1
127.0.0.1:6379> pfmerge k3 k1 k2
OK
#合并仍有去重操作
127.0.0.1:6379> pfcount k3
(integer) 2
3. Geospatial(地理信息)
- 元素的2维坐标
- 常见命令
geoadd <key> <经度> <纬度> <名字> <经度2> <纬度2> <名字2>... 添加坐标
#经度范围 -180~180; 纬度范围-85.05112878~85.05112878
geopos <key> <名字> 获取经纬度
geodist <key> <名字1> <名字2> [m|km|ft|mi] 获取两点之间的距离
georadius <key> <经度> <纬度> <radius> [m|km|ft|mi] 获取指定经纬度为中心,一定半径下的坐标元素
127.0.0.1:6379> geoadd city 121.1 31.2 shanghai 33 22 unkNowncity
(integer) 2
127.0.0.1:6379> geopos city shanghai
1) 1) "121.10000163316726685"
2) "31.20000061483705878"
127.0.0.1:6379> georadius city 100 20 3000 KM
1) "shanghai"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。