Redis Bitmap 位图
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 位图相关推荐
- redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用
1.bitmap介绍 位图不是真正的数据类型,它是定义在字符串类型中,一个字符串类型的值最多能存储512M字节的内容 位上限:2^(9(512)+10(1024)+10(1024)+3(8b=1B)) ...
- Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解
文章目录 Redis(十)--HyperLogLog 基数统计和 Bitmap位图场景详解 1.HyperLogLog 基数统计 2.Bitmap位图场景详解 Redis(十)--HyperLogLo ...
- Redis数据类型 - 位图(bitmap)
文章目录 一.位图bitmap简介 二.位图的常用命令 三.在位图中存储整数值 一.位图bitmap简介 Redis的位图是由多个二进制位组成的数组,数组中的每个二进制位都有与之对应的偏移量(也称索引 ...
- linux中获取redis的map,深入Redis之 bitmap位图和HyperLogLog(五)
bitmap位图 我们知道一个字符占1个字节,也就是8个位 例如 set name big big字符串中的3个字符的ASCII码为98 105 113 所以big转为二进制就是: 01100010| ...
- Redis(十一):Redis特殊类型之Bitmap位图
1.位存储 只有0和1两种状态! Bitmap 位图:数据结构,都是操作二进制位来进行记录 登录/未登录 活跃/不活跃 打卡 两个状态的都可以使用Bitmap! 2.常用命令 2.1.用Bitmap来 ...
- 【Bitmap Index】B-Tree索引与Bitmap位图索引的锁代价比较研究
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的"高昂代价".位图索引会带来"位图段级锁",实际使用过程一定要充分了解不同索引带来的锁代价 ...
- java base64转bitmap,如何将Bitmap位图与base64字符串相互转换
先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: ///将Bitmap位图转化为base64字符串 function BitmapToString(img:T ...
- oracle位图索引和普通索引区别,【索引】Bitmap位图索引与普通的B-Tree索引锁的比较...
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的"高昂代价".位图索引会带来"位图段级锁",实际使用过程一定要充分了解不同索引带来的锁代价 ...
- Bitmap位图结构
Bitmap位图结构 一.位图数据结构 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header): 提供文件的格式.大小等信息 ◆ 位图信息头(bi ...
最新文章
- Android中Broadcast
- Swift 中的 @autoclosure
- 每日一皮:叫你们别上泰坦尼克,嗓子都喊哑了!没一个听我的,最后还把我......
- 2011-05-20
- 服务器主板装w7系统死机,解决win7安装过程死机现象有一招
- java反射机制+继承设计技巧
- 【渝粤题库】广东开放大学 社会保障法 形成性考核
- Spark streaming细粒度工作原理
- vue二级路由跳转后外部引入js失效问题解决方案
- 【系列一之爬虫系列】爬取信息
- linux内核源码版本查看
- 百度开源的 71 个炸天项目
- 招聘简历管理系统(初步设计)
- Android息屏与亮屏
- 微信公众号自定义分享注意事项
- 数字IC设计工程师要具备哪些技能
- 【安装】sublime text 3 汉化插件
- C++ 二维vector使用
- 7天学习Go语言-尾声+一次险些翻车的任意文件读取漏洞小记
- 计算机社团评优申报资料,优秀社团会员申请书
热门文章
- Intel 64/x86_64/IA-32/x86处理器 - 锁原子操作(1) - 处理器保证的原子操作
- Intel® Nehalem/Westmere架构/微架构/流水线 (9) - 系统软件增强/能耗增强
- ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
- nodejs的mysql模块_Nodejs的mysql模块学习(一)
- gdb vscode 不进入断点_VScode配置MASM32运行环境(断点/运行/debug/配合emu8086(非DOSBox))...
- 深入理解java虚拟机_深入理解Java类加载
- python中pop用法_Python Set pop()用法及代码示例
- Xcode中C、C++、Object-C3种语言的混编
- php中::双冒号有什么作用
- Trace文件过量生成问题解决