Redis 三大特殊数据类型常见命令

Geospatial

朋友的定位,附近的人,打车距离计算

底层是 Zset即可以使用Zset的命令操作Geospatial

Redis3.2 开始支持的

1.添加地理位置

  • 两极无法添加
  • 经度:-180 ~ 180(度)
  • 纬度:-85.05112878 ~ 85.05112878(度)

geoadd key 经度 纬度 名称

Redis 三大特殊数据类型常见命令_第1张图片

2.获取指定位置的地理位置

geopos key 名称

3.返回两个给定位置之间的距离(直线距离)

  • 单位:
    • m :米
    • km :千米
    • mi : 英里
    • ft :英尺

geodist key

Redis 三大特殊数据类型常见命令_第2张图片

4.以给定值为半径,以经度和维度为中心,查找

  • 附近的人(获得所有附近的人的地址(开启定位))通过半径查询

georadius key 经度 纬度 半径 单位

Redis 三大特殊数据类型常见命令_第3张图片

5.以给定值为半径,以成员(城市名)为中心,查找

georadiusbymember key 成员名 半径 单位

Redis 三大特殊数据类型常见命令_第4张图片

6.返回一个或多个位置元素的geohash表示

  • 如果两个字符串越相似,表示两个地方越近

geohash key 成员1 成员2

Hyperloglog

基数统计的算法;

类似 Set 作用,但可以节省大量内存!!

  • 优点
    • 占用内存是固定的2的64次方 个不同的元素的基数,只需要 12KB 的内存。(大数据情况下,有0.81%错误率)

基数:集合中元素的个数(先去重),如{1,2,2,3} 其基数为3(集合去重后为1,2,3 有3个元素)

网页的UV(一个人访问访问一个网站多次,但是还是算作一个人)

传统实现UV:Set保存用户的Id,然后统计 set 中的元素的数量作为标准判断(这种需要保存大量用户的ID,需要大量的内存占用)

Redis2.8.9 开始支持

1.测试

创建一组元素 : pfadd key ele1 ele2 ele3 …

统计对应key的基数:pfcount key1 [key2 …] // 多个key 就是统计这些key并集的基数

合并:pfmerge destkey sourceKey1 sourceKey2 [sourceKey3 …]

Redis 三大特殊数据类型常见命令_第5张图片

Bitmaps

位存储,位图(操作二进制)

统计用户信息,活跃,不活跃!登录、未登录!打卡,365打卡!(只有两个状态的属性都可以使用!!)

1.案例:一周打卡记录

一周过去

setbit key offset bit

Redis 三大特殊数据类型常见命令_第6张图片

查看单天打卡情况

getbit key offset

Redis 三大特殊数据类型常见命令_第7张图片

统计所有打卡的天数

bitcount key

你可能感兴趣的:(Redis,redis,数据库,缓存)