Redis bitmap使用场景示例
bitmap两个应用场景:
setbit命令:
offset:是二进制位的偏移量,而不是字节数组。一个字节有8个二进制位
将k1的第一个(索引为0)二进制位设置为1:
在ASCII码表中,01000000刚好就是@:
将k1的第八个(索引为7)二进制位设置为1:01000001对应的就是A
使用man ascii来验证:
将第十个二进制位(索引为9)的值设置为1:得到的结果将是A@,就是将两个字节按照ASCII表分别转换为字符后拼接起来
setbit k2 1 1
setbit k2 6 1
得到'B'
将k1和k2进行与运算:与运算,遇0则0,全为1则为1
将k1和k2进行或运算:或运算,遇1则1,全为0则为0
bitmap的应用场景一:
统计用户的登录天数,且窗口随机。
460M能存储1000万用户全年365天的登录明细:365/8=46B(字节)
(01,02,03,04为日期;sean,json为用户id)
比如:用户sean第2天登录过,第8天,第365天登录过:
统计一个用户一年内的登录天数顶多需要46字节:
计算用户sean最后两周的登录天数:(最后一周是-1,倒数第二周是-2),结果是1次
bitcount 统计的是1的个数 bitcount test 0 -1 就是所有的 bitcount 0 0 那么就应该是第一个字节中1的数量的
正反向索引:
统计活跃用户数:以登录日期为key;重复登录要去重;进行or或运算(有1则1);
Redis bitmap使用场景示例相关推荐
- Redis BitMap适应场景
https://blog.csdn.net/paul_wei2008/article/details/53366588 Bitmap以及Redis Bitmaps快速入门(Crash Course o ...
- Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解
文章目录 Redis(十)--HyperLogLog 基数统计和 Bitmap位图场景详解 1.HyperLogLog 基数统计 2.Bitmap位图场景详解 Redis(十)--HyperLogLo ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part6(Redis的应用场景、Redis是单线程的速度还快、Redis线程模型:Reactor模式、事件、发布订阅、管道)~整起
PART1-1:为什么Redis是单线程的 Redis单线程是指: Redis的网络IO和键值对读写是由一个线程来完成的.这也是 Redis 对外提供键值存储服务的主要流程.Redis的其他功能,比如 ...
- 大容量类 Redis 存储的场景补充-pika
2019独角兽企业重金招聘Python工程师标准>>> 导读 我们在<大容量类 Redis 存储 - 有关 pika 的一切>里介绍过pika的诞生.pika的特点.pi ...
- PHP中使用redis执行lua脚本示例
一.引言 redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功 ...
- python使用redis在实际场景使用_用python操作redis及redis的一些应用场景
redis安装 网上很多windows.Linux的安装教程,可根据自己的需要寻找对应教程安装 redis-py安装 pip install redis redis可视化工具 API的使用 redis ...
- Redis 的应用场景
之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键. 下面一一来分析下Redis的应用场景都有哪些. 1.缓存 缓存 ...
- redis的使用场景和基本数据类型
一:redis使用的场景 redis是一个高性能的NoSQL数据库,特点是高性能,持久存储,适应高并发的应用场景. 下面看看它的使用场景 1.取最新N个数据的操作 比如取网站的最新文章,通过下面方式, ...
- Redis的应用场景汇总
Redis应用场景 Redis作为一个非关系型数据库,除了在访问速度上拥有显著优势外,其本身支持的多种数据类型也非常有用,能覆盖系统开发中的很多应用场景.下面列举的场景有的是从网上其他人的博客里看到的 ...
最新文章
- 技巧:结合Zabbix与SNMP监控嵌入式设备
- Python 学习散记
- Apache OpenWebBeans 发布适用于 Java EE 微服务的 Meecrowave 服务器 1.0
- WDS 自动化部署安装 win2008 服务器实验
- 华为OJ平台——放苹果(典型整数划分问题)
- mybatis简介-什么是Mybatis
- 高手经验:一个新手的verilog学习经验
- 阿里云服务器安装onlyoffice_阿里云服务器安装 JDK 8
- c 登录窗口 oracle,C语言实现图形界面登陆窗口
- 浦发招聘笔试计算机部分考啥,2019浦发银行校园招聘考试题型及题量分布
- Protel.DXP2004 电路板设计
- 重新安装OFFICE2010失败
- HoudahGeo 6 for Mac(地理位置信息软件)
- .net的过去、现在和未来
- dell客服(dell客服维修中心)
- java3d立方体_java3d 立方体 加载纹理
- Linux基础之 getopts
- Python识别验证码----谷歌reCapture 4*4验证码
- 【Java】2022年团体程序设计天梯赛 L1 和 L2-042 题解
- 超大型Oracle数据库设计实例
热门文章
- 【机器学习基础】太棒了!这里有385篇自然语言处理和机器学习领域的综述总结...
- 特征工程与特征选择架构性好文
- 原文翻译:深度学习测试题(L1 W3 测试题)
- 聚焦场景落地, 看“云+AI”如何激发5G的“隐藏技能”
- 即时通讯音视频开发(三):视频编解码之编码基础
- 当前安卓App加固到底该如何做到防篡改?
- MySQL不能插入中文字符及中文字符乱码问题
- 【noi 2.6_9284】盒子与小球之二(DP)
- 用c#开发微信 系列汇总
- 有关项目实施【老男孩】的经验分享