首页 > 数据库 >redis-BitMap(位图)使用方法

redis-BitMap(位图)使用方法

时间:2024-04-02 20:32:15浏览次数:28  
标签:127.0 0.1 redis sign 6379 key BitMap 方法 setbit

一,BitMap介绍

使用位存储,信息状态只有 0 和 1

Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR,NOT以及其它位操作。

二 ,应用场景

签到统计、状态统计

三,命令

命令	描述
setbit key offset value	为指定key的offset位设置值
getbit key offset	获取offset位的值
bitcount key [start end]	统计字符串被设置为1的bit数,也可以指定统计范围按字节
bitop operration destkey key[key…]	对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。
BITPOS key bit [start] [end]	返回字符串里面第一个被设置为1或者0的bit位。start和end只能按字节,不能按位

四,应用场景

------------setbit--getbit--------------
127.0.0.1:6379> setbit sign 0 1 # 设置sign的第0位为 1 
(integer) 0
127.0.0.1:6379> setbit sign 2 1 # 设置sign的第2位为 1  不设置默认 是0
(integer) 0
127.0.0.1:6379> setbit sign 3 1
(integer) 0
127.0.0.1:6379> setbit sign 5 1
(integer) 0
127.0.0.1:6379> type sign
string

127.0.0.1:6379> getbit sign 2 # 获取第2位的数值
(integer) 1
127.0.0.1:6379> getbit sign 3
(integer) 1
127.0.0.1:6379> getbit sign 4 # 未设置默认是0
(integer) 0

-----------bitcount----------------------------
127.0.0.1:6379> BITCOUNT sign # 统计sign中为1的位数
(integer) 4



# 1.setbit key offset value 
setbit sign 0 1 #周一打卡
setbit sign 1 0 #周二未打卡

# 2.getbit key offset
getbit sign 1 #查看周二是否打卡

# 3.bitcount key 
bitcount sign #统计打卡了几次

标签:127.0,0.1,redis,sign,6379,key,BitMap,方法,setbit
From: https://blog.csdn.net/weixin_54097396/article/details/137288411

相关文章

  • JavaScript库,编写$()和getElementsByClassName()方法
    背景:JavaScript库是一组预先编写好的JavaScript代码集合,旨在简化常见的网页开发任务。这些库通常包含了许多函数和方法,可以帮助开发人员处理各种任务,比如DOM操作、事件处理、动画效果、AJAX请求等等。使用JavaScript库可以节省开发时间,并提供了一种标准化的方法来解决常见的......
  • 【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母
    【问题描述】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2,...Z→26。这样一个字符串就能被转化成一个数字序列:比如ABCXYZ→123242526。现在给定一个转换后的数字序列,小明想还原出原本的......
  • 非关系型数据库——Redis基本操作
    目录一、Redis数据库常用命令1.Set——存放数据 2.Get——获取数据3.Keys——获取符合条件的键值4.Exists——判断键值是否存在5.Del——删除指定键值6.Type——获取键值对应的类型7.Rename——对已有键值重命名(覆盖)8.Renamenx——对已有键值重命名(不覆盖)9.Dbsize—......
  • redis特殊数据类型-Geospatial(地理位置)用法
    一 Geospatial(地理位置)介绍使用经纬度定位地理坐标并用一个有序集合zset保存,所以zset命令也可以使用有效的经度从-180度到180度。有效的纬度从-85.05112878度到85.05112878度。二 Geospatial应用场景        通过georadius就可以完成附近的人功能withcoo......
  • 构造函数init到底是什么作用 是下面的方法都可以从init里面获取参数吗?(AI+Python)
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题,问题如下:问一下构造函数init到底是什么作用是下面的方法都可以从init里面获取参数吗?二、实现过程这里【黄志诚】分享了自己的一个经验:全局呀,相当于初始化一个参数,全局都......
  • 部分数据类型的内置方法及字符串内置方法
    昨日内容回顾【一】循环结构【1】while循环break:退出当前循环coutinue:退出本次循环tag:标志位,可以通过最里层的标志位直接将最外层的while循环断掉【2】for循环遍历可迭代类型(可以被索引取值的都可以被迭代,可一个个取值的就是可迭代的)遍历的意思就是将被需要遍历的......
  • 内置方法
    【一】字符串的内置方法【1】find方法name="dreamHello"#默认是从左向右找并且返回当前字符在字符串内部的索引坐标print(name.find('d'))#0#默认只能找一次,找打了就不找了print(name.find('e'))#2#可以指定寻找的区间print(name.find('e',5,-1))#7#可以......
  • 内置方法
    1字符串内置方法(了解)1.1字符串的查找字符串内部的字符【1】find方法name="hellobaby"#默认是从左向右找并且返回当前字符在字符串内部的索引坐标print(name.find("a"))#7name="hellobaby"#默认只能找一次,找到就不找了print(name.find("b"))#6name="......
  • 字典的内置方法
    字典的内置方法【一】字典定义字典中的数据都是k:v值不支持索引取值,只能支持键值对取值【二】内置方法user_data={'username':'hyt','password':'123'}【1】查(1)[键]:如果这个键不存在,就会报错print(user_data['username']) #hyt(2).get(键):如果这个键不存在,不会报......
  • 在java开发中平方怎么表示?平方表示的方法有哪几种?
    在java开发中平方怎么表示?平方表示的方法有哪几种?在我们计算一个数的几次方的时候。我们按照课堂中老师的教法就是在一个数的右上角写上一个小小的数字用来表示一个数的几次方,那么大家知道“在java开发中平方怎么表示吗?“和“java中平方表示的方法有哪几种吗?”,那么我们就来看......