ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis学习笔记五(新数据类型)

2022-06-19 19:04:05  阅读:159  来源: 互联网

标签:127.0 pfadd 0.1 数据类型 Redis 笔记 6379 jack integer


1. Bitmaps(主要用于统计活跃度)

1. 特点

  1. 对位进行操作
  2. 实际上是字符串
  3. 可以想象为一个以位为单位的数组,只存储0和1,下标为偏移量
  4. 第一次初始化,如果偏移量非常大,执行过程就会比较慢,可能会造成Redis堵塞
  5. 如果活跃用户够大,建议使用

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 (用于统计不重复元素个数,基数问题)

  1. 通过更小的内存,计算更大的基数
  2. 只会根据输入元素计算基数,并不会存储元素,因此不能返回输入元素
  3. 常用命令
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(地理信息)

  1. 元素的2维坐标
  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"

标签:127.0,pfadd,0.1,数据类型,Redis,笔记,6379,jack,integer
来源: https://www.cnblogs.com/sleepyheadLK/p/16391094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有