Bitmaps与HypeLoglog

bitmap 算法-小灰html

  • Bitmaps 单独提供了一套命令,因此在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。能够把 Bitmaps 想象成一个以 位 为单位的数组,数组的每一个单元只能存储 0 和 1,数组的下标在Bitmaps中叫作偏移量

基础操做:算法

setbit key offset value 设置值数组

getbit key offset 获取值数据结构

bitcount [start end ] 获取指定范围内1的个数网站

bitpos key targetBit [start end ] 计算bitmaps 中第一个值为targetbit偏移量   bitpos key 1 计算key中当前访问网站的最小用户idspa

bitop op destkey key (op = or,and,not,xor)  bitmap 之间的运算code

operation 能够是 AND 、 OR 、 NOT 、 XOR 这四种操做中的任意一种:htm

  • BITOP AND destkey key [key ...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。
  • BITOP OR destkey key [key ...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。
  • BITOP XOR destkey key [key ...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。
  • BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey 。

结论:bitmaps并非万精油,假设天天的量不多,好比只有10万(大量的僵尸用户),这时用bitmaps不太合适blog

HypeLoglog:内存

详解

并非新型的数据结构(实际类型是字符串类型),而是一种基数算法

pfadd key elements 添加元素

pfcount key 计算独立用户数

info memery 查看内存

pfmerge destkey sourcekey 合并,并集

结论:内存占用量少,可是存在错误率,量多允许必定的偏差率能够选择

相关文章
相关标签/搜索