Redis Bitmap 并不是一个实际的数据类型,而是定义在String类型上的bitwise基于二进制位的一组操作。

因为String是二进制安全的,最大长度512MB,适合构建2的32方个不同的bits,在每个bit位上存储0或1,适合存储boolean类型的信息。

这种方式记录,比使用key/value,最大的优点就是可以节省大量的存储空间。

1、单bit的赋值和查询提取操作,setbit key bit_number bit_value,getbit key,

其中setbit 命令 第一个参数为key,第二个参数为bit位数,从0开始计数,第三个参数为该bit位上存储的数值,值为1或者0,默认不写的话为0,

例如:setbit bitKey 100 1, setbit bitKey 10 1, setbit bitKey 0 1

getbit bitKey 10,返回1

2、基于一组bit的操作

bitcount bitKey,统计存储1的bit的个数。

bitpos bitKey 1,第一个为1的bit位置

bitpos bitKey 0, 第一个为0的bit位置

这个 bitcount 统计功能,记录网站用户在某段时间每天是否登录,登录的话记录1,不登录的话记录0,比如第1,3,10,12,15天登录了,可以设置

setbit user:123 1 1

setbit user:123 3 1

setbit user:123 10 1

setbit user:123 12 1

setbit user:123 1 51

然后使用bitcount user:123 统计实际多少天登录了。

3、bitop 位元操作

使用方法:bitop operation resultKey bitKey1 bitKey2 bitKey3

意思是 对bitKey1, bitKey2, bitKey3 几个key的数据进行operation操作,结果存储在 resultKey 中

operation 可以为and 逻辑并,or逻辑或,xor逻辑异或,not非

Redis Bitmap 位图相关推荐

  1. redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用

    1.bitmap介绍 位图不是真正的数据类型,它是定义在字符串类型中,一个字符串类型的值最多能存储512M字节的内容 位上限:2^(9(512)+10(1024)+10(1024)+3(8b=1B)) ...

  2. Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解

    文章目录 Redis(十)--HyperLogLog 基数统计和 Bitmap位图场景详解 1.HyperLogLog 基数统计 2.Bitmap位图场景详解 Redis(十)--HyperLogLo ...

  3. Redis数据类型 - 位图(bitmap)

    文章目录 一.位图bitmap简介 二.位图的常用命令 三.在位图中存储整数值 一.位图bitmap简介 Redis的位图是由多个二进制位组成的数组,数组中的每个二进制位都有与之对应的偏移量(也称索引 ...

  4. linux中获取redis的map,深入Redis之 bitmap位图和HyperLogLog(五)

    bitmap位图 我们知道一个字符占1个字节,也就是8个位 例如 set name big big字符串中的3个字符的ASCII码为98 105 113 所以big转为二进制就是: 01100010| ...

  5. Redis(十一):Redis特殊类型之Bitmap位图

    1.位存储 只有0和1两种状态! Bitmap 位图:数据结构,都是操作二进制位来进行记录 登录/未登录 活跃/不活跃 打卡 两个状态的都可以使用Bitmap! 2.常用命令 2.1.用Bitmap来 ...

  6. 【Bitmap Index】B-Tree索引与Bitmap位图索引的锁代价比较研究

    通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的"高昂代价".位图索引会带来"位图段级锁",实际使用过程一定要充分了解不同索引带来的锁代价 ...

  7. java base64转bitmap,如何将Bitmap位图与base64字符串相互转换

    先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: ///将Bitmap位图转化为base64字符串 function BitmapToString(img:T ...

  8. oracle位图索引和普通索引区别,【索引】Bitmap位图索引与普通的B-Tree索引锁的比较...

    通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的"高昂代价".位图索引会带来"位图段级锁",实际使用过程一定要充分了解不同索引带来的锁代价 ...

  9. Bitmap位图结构

    Bitmap位图结构 一.位图数据结构 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header):  提供文件的格式.大小等信息 ◆ 位图信息头(bi ...

最新文章

  1. Android中Broadcast
  2. Swift 中的 @autoclosure
  3. 每日一皮:叫你们别上泰坦尼克,嗓子都喊哑了!没一个听我的,最后还把我......
  4. 2011-05-20
  5. 服务器主板装w7系统死机,解决win7安装过程死机现象有一招
  6. java反射机制+继承设计技巧
  7. 【渝粤题库】广东开放大学 社会保障法 形成性考核
  8. Spark streaming细粒度工作原理
  9. vue二级路由跳转后外部引入js失效问题解决方案
  10. 【系列一之爬虫系列】爬取信息
  11. linux内核源码版本查看
  12. 百度开源的 71 个炸天项目
  13. 招聘简历管理系统(初步设计)
  14. Android息屏与亮屏
  15. 微信公众号自定义分享注意事项
  16. 数字IC设计工程师要具备哪些技能
  17. 【安装】sublime text 3 汉化插件
  18. C++ 二维vector使用
  19. 7天学习Go语言-尾声+一次险些翻车的任意文件读取漏洞小记
  20. 计算机社团评优申报资料,优秀社团会员申请书

热门文章

  1. Intel 64/x86_64/IA-32/x86处理器 - 锁原子操作(1) - 处理器保证的原子操作
  2. Intel® Nehalem/Westmere架构/微架构/流水线 (9) - 系统软件增强/能耗增强
  3. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  4. nodejs的mysql模块_Nodejs的mysql模块学习(一)
  5. gdb vscode 不进入断点_VScode配置MASM32运行环境(断点/运行/debug/配合emu8086(非DOSBox))...
  6. 深入理解java虚拟机_深入理解Java类加载
  7. python中pop用法_Python Set pop()用法及代码示例
  8. Xcode中C、C++、Object-C3种语言的混编
  9. php中::双冒号有什么作用
  10. Trace文件过量生成问题解决