Redis三种特殊数据类型,以及适用的场景

Geospatial 地理位置

# getadd 添加地理位置 
# 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入! # 有效的经度从-180度到180度。
# 有效的纬度从-85.05112878度到85.05112878度。 
# 当坐标位置超出上述指定范围时,该命令将会返回一个错误

geoadd china:city 116.40 39.90 北京
# 获取指定的城市的经度和纬度!
geopos china:city 北京
#获取两个地址的距离,后面加单位
geodist china:city 北京 上海 km 
#获取当前点半径内的元素
georadius china:city 110 30 1000 km
#获取到中心点的距离
georadius china:city 110 30 500km withdist 
#获取到中心点距离的坐标
georadius chaina:city 110 30 500km withcoord
#筛选出指定的个数
georadius chaina:city 110 30 500km withcoord 2
# 找出位于指定元素周围的其他元素!
georadiusmember china:city beijing 1000 km

Hyperloglog
#基数,不可重复的元素,网页的 UV (一个人访问一个网站多次,但是还是算作一个人!)这个方式如果保存大量的用户id,就会比较麻烦!我们的目的是为了计数,而不是保存用户id;
0.81% 错误率! 统计UV任务,可以忽略不计的!

#添加一组元素mykey
pfadd mykey a b c d e f g h i j
#统计mykey的基数个数
pfcount mykey
#合并两组key,并集,查看key3的数量是并集
pfmerge mykey mykey2 mykey3

Bitmap
统计用户信息,活跃,不活跃! 登录 、 未登录! 打卡,365打卡! 两个状态的,都可以使用
Bitmap 位图,数据结构! 都是操作二进制位来进行记录,就只有0 和 1 两个状态!

#使用bitmap记录打卡,测试打卡7天
setbit sign 0 1 
setbit sign 1 0
setbit sign 2 0
setbit sign 3 1
setbit sign 4 1
setbit sign 5 0
setbit sign 6 1
setbit sign 7 0

#查看某一天是否打卡
getbit sign 3

#统计操作,查看打卡总天数
bitcount sign

猜你喜欢

转载自blog.csdn.net/qq_38132995/article/details/109963426