Bitmaps

  • 获取指定 key 对应偏移量上的 bit 值

    getbit key offset
  • 设置指定 key 对应偏移量上的 bit 值,value 只能说 0 或 1

    setbit ket offset value
  • 对指定 key 按位进行交、并、非、异或操作,并将结果保存到 destKet 中

    bitop op destKet key1 [key2...]
    • and:交

    • or:并

    • not:非

    • xor:异或

  • 统计指定 ket 中 1 的数量

    bitcount key [start end]

HyperLogLog

用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据

核心是基数估计算法,最终数据存在一定误差

误差范围:基数估计的结果是一个带有 0.81 标准错误的近似值

耗空间小,美国 hyperloglog 占用 12K 的内存用于标记基数

pfadd 命令不是一次性分配 12K 内存使用,会随着基数的增加内存逐渐增大

pfmerge 命令合并后占用储存空间为 12K,无论合并之前数据量是多少

  • 添加数据

    pfadd ket  element [element...]
  • 统计数据

    pfcount ket [key...]
  • 合并数据

    pfmerge destkey sourcekey [sourcekey...]

GEO

  • 添加坐标点

    geoadd key longitude latitude member [longitude latitude member ...]
  • 获取坐标点

    geopos key member [member ...]
  • 计算坐标点距离

    geodist key member1 member2 [unit]
  • 根据坐标求范围内的数据

    georadius ket longitude latitude radius m|km|ft|mi [withdist] [withhash] [withhash] [count count]
  • 根据点求范围内的数据

    georadiusbymember key member radius m|km|ft|mi [withdist] [withhash] [withhash] [count count]
  • 获取指定点对应的坐标 hash 值

    geohash key member [member ...]