1. 什么是位图
redis可以直接对数据进行位操作。
2. 实例
-
setbit key offset value #给位图指定索引设置值
上面我们给hello赋值为world,那么我们现在把它的二进制第0位改成1,再进行get hello
- getbit key offset #获取第offset位的二进制
- bitcount key [start end] #获取位图指定范围中(start 到end)1的个数
- bitop op destkey key [key...] #做多个Bitmap的and(交集)、or(并集)、not(非)、xor(异或)操作并将结果保存在destkey中
- bitpos key targetBit [start] [end] #计算位图指定范围(start)到(end)的位置
1. 什么是Hyperloglog
极小空间完成独立数量统计。本质是个string。千万级别的存储只会消耗极少的内存(几Mb),但是错误率比较高(0.81%)
2. 三个命令
- pfadd key element [element... ] # 向hyperloglog添加元素
- pfcount key [key...] #计算hyperloglog 的独立总数
- pfmerge destkey sourcekey [sourcekey...] #合并多个hyperloglog