1. 什么是位圖
redis可以直接對數(shù)據(jù)進行位操作员淫。
獲取hello二進制的第0位.png
2. 實例
-
setbit key offset value #給位圖指定索引設置值
上面我們給hello賦值為world,那么我們現(xiàn)在把它的二進制第0位改成1拴事,再進行get hello
setbit .png - getbit key offset #獲取第offset位的二進制
- bitcount key [start end] #獲取位圖指定范圍中(start 到end)1的個數(shù)
- bitop op destkey key [key...] #做多個Bitmap的and(交集)、or(并集)刃宵、not(非)、xor(異或)操作并將結果保存在destkey中
- bitpos key targetBit [start] [end] #計算位圖指定范圍(start)到(end)的位置
1. 什么是Hyperloglog
極小空間完成獨立數(shù)量統(tǒng)計哮针。本質是個string坦袍。千萬級別的存儲只會消耗極少的內存(幾Mb),但是錯誤率比較高(0.81%)
2. 三個命令
- pfadd key element [element... ] # 向hyperloglog添加元素
- pfcount key [key...] #計算hyperloglog 的獨立總數(shù)
- pfmerge destkey sourcekey [sourcekey...] #合并多個hyperloglog
3. 實例
image.png