Redis中setbit和bitcount的注意细节
来源:互联网 发布:qq输入法linux 编辑:程序博客网 时间:2024/05/16 17:19
setbit 可以理解是一个位数组,至于这个数组有多大,redis中bit映射被限制在512MB之内,所以最大是2^32。也就是在这样一个位数组上存0或者是1 ,可以结合bloomFilter的应用场景理解位数组的用法,将字符串使用一种合适哈希函数映射到不同的bit位上(2^32足够的大,可以满足需求)
然后快速判断一个元素是否在集合之内,可以将复杂度降低到1,性能消耗主要是在对这个元素进行哈希运算。
以上是bit的一个应用场景。
下面说setbit和bitcount的区别
可以想象一个大数组 |_0_|_1_|_2_|_3_|_4_|_5_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|
这里的0 1 2 3 4 5 分别就是bit位 也就是setbit的第二个参数 那个偏移量 setbit test 4 1 那么就相当于是在4上值为1,其他?其他地方都是0。
这是setbit
但是 bitcount 统计的是1的个数 bitcount test 0 -1 就是所有的 bitcount 0 0 那么就应该是第一个字节中1的数量的,
注意是字节 第一个字节也就是 0 1 2 3 4 5 6 7 这八个位置上。
所以如果
127.0.0.1:6379> setbit test 7 1(integer) 0127.0.0.1:6379> setbit test 16 1(integer) 0127.0.0.1:6379> bitcount test 0 0(integer) 1127.0.0.1:6379> bitcount test 1 1(integer) 0127.0.0.1:6379> bitcount test 2 2(integer) 1
1 0
- Redis中setbit和bitcount的注意细节
- redis中 SETBIT命令 和 BITCOUNT命令
- 使用redis的setbit和bitcount来进行区间统计的坑
- redis的setbit,getbit,bitcount的使用详解
- redis的setbit这个bit怎么理解,配合bitcount使用?
- redis 中 SETBIT命令的用法
- Redis中的GETBIT和SETBIT
- redis的setbit和getbit是干嘛的???
- redis的setbit的案例
- 关于bigInteger中setbit 和 testBit的解析
- Java 中 char 和 String 的细节和使用注意
- 【Java 】中 char 和 String 的细节和使用注意
- Java 中 char 和 String 的细节和使用注意
- css中需要注意和巩固的细节
- 使用setbit、bitcount实现用户上线次数统计
- 理解 Redis setbit
- redis-setbit理解
- redis-setbit理解
- 雷鸟Thunderbird邮件客户端的几个实用配置技巧
- 主题模型简述
- 远程调试
- VBScript运行时ODBC 驱动程序不支持所需的属性的问题
- javascript高级开发学习笔记三
- Redis中setbit和bitcount的注意细节
- Fragment、Activity 的 startActivityForResult 的处理
- SqlServer批量清理指定数据库中所有数据
- hdu3127WHUgirls【二维完全背包】
- AOP_Demo
- 对rtmp或flv协议中音频的封包的一点补充
- BF算法
- 阻塞赋值和非阻塞赋值深度解析——仿真事件的调度
- SQL SERVER 分页(Paging a Query with SQL Server)