Redis-位图_redis 槽

Redis-位图_redis 槽关于位图,可能大家不太熟悉, 那么位图能干啥呢?位图的内容其实就是普通的字符串,也就是byte数组,我们都知道 byte 8 位无符号整数 0 到 255 说个场景。比如你处理一些业务时候,往往会存在

Redis-位图

关于位图,可能大家不太熟悉,

那么位图能干啥呢?位图的内容其实就是普通的字符串,也就是byte数组,我们都知道

byte 8 位无符号整数 0 到 255

说个场景。比如你处理一些业务时候,往往会存在 是或者不是 这样的数据,那么这种数据还是频繁去查看和请求,从数据方面和请求次数方面都是非常的大的。那么Redis位图可以帮你解决。每天的记录只占据一个位,他的存储格式:0 1 0 1 0 1。在操作方面我们可以使用:get/set, gitbit/setbit等将byte数组看成【位数组】来处理。

说说他的特性:

位数组是自动扩展的,如果超出现有内容范围,它会自动将位数组进行零扩充。

当然一般这种业务数据,都往往少不了统计,查找,那么位图指令统计bitcount和查找bitpos。bitcount 用来统计指定位置范围内 1 的个数,bitpos 用来查找指定范围内出现的第一个 0 或 1。

bitpos指定的范围是【start,end】。注意的是start 和 end 参数是字节索引,也就是说指定的位范围必须是 8 的倍数,

当然,我们都知道之前指定的位图都是单个位的,当然也有一次操作多个位的,不过必须用管道,不过从3.2版本后。有个bitfield,有三个指令,分别是:get/set/incrby,它们都可以对指定位片段进行读写,但是最多只能处理 64 个连续的位,如果超过 64 位,就得使用多个子指令,bitfield 可以一次执行多个子指令。

 BITFIELD mykey INCRBY i5 100 1 GET u4 0

代码100分

当需要一个整型时,有符号整型需在位数前加i,无符号在位数前加u。例如,u8是一个8位的无符号整型,i16是一个16位的有符号整型。有符号整型最大支持64位,而无符号整型最大支持63位。对无符号整型的限制,是由于当前Redis协议不能在响应消息中返回64位无符号整数。

代码100分所谓有符号数是指获取的位数组中第一个位是符号位,剩下的才是值。如果第一位是 1,那就是负数。无符号数表示非负数,没有符号位,获取的位数组全部都是值。有符号数最多可以获取 64 位,无符号数只能获取 63 位 (因为 Redis 协议中的 integer 是有符号数,最大 64 位,不能传递 64 位无符号值)。如果超出位数限制,Redis 就会告诉你参数错误。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10094.html

(0)
上一篇 2023-01-25
下一篇 2023-01-25

相关推荐

  • nginx代理mysql,ssh[通俗易懂]

    nginx代理mysql,ssh[通俗易懂]
    nginx代理mysql,ssh 查看nginx信息 nginx -V,下载相同版本nginx解压并编译 configure编译时追加参数–with-st…

    2023-04-22
    178
  • 《MySQL必知必会》之快速入门游标和触发器「终于解决」

    《MySQL必知必会》之快速入门游标和触发器「终于解决」第二十四章 使用游标 本章将介绍什么是游标以及如何使用游标 游标 之前的select语句检索出来的数据,没有办法得到第一行或者下一行 有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原

    2023-06-20
    151
  • Python中shape函数的用法

    Python中shape函数的用法Python中shape函数是一种非常常用的数学函数,可以用来获取数组或者矩阵的形状。矩阵的形状是指该矩阵的行列数,而数组的形状则是指该数组的维度(即多少个元素,每个元素有多少个数据)。

    2024-09-21
    17
  • sql 算术运算符和比较运算符的区别_sql运算符优先级

    sql 算术运算符和比较运算符的区别_sql运算符优先级学习重点 运算符就是对其两边的列或者值进行运算(计算或者比较大小等)的符号。 使用算术运算符可以进行四则运算。 括号可以提升运算的优先顺序(优先进行运算)。 包含 NULL 的运算,其结果也是 NUL

    2023-04-26
    129
  • Redis系列(三)Redis的事务和Spring Boot整合「建议收藏」

    Redis系列(三)Redis的事务和Spring Boot整合「建议收藏」NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。

    2023-02-28
    146
  • centos安装redis并开启多个redis实例「建议收藏」

    centos安装redis并开启多个redis实例「建议收藏」1.下载安装包 下载地址 : http://download.redis.io/releases/,去里面找对应的版本下载 例如 wget http://download.redis.io/

    2022-12-25
    147
  • Spyderdebug是什么?

    Spyderdebug是什么?Spyderdebug是一种Spyder IDE的插件,它可以提高Python代码的可调试性。在Spyderdebug的帮助下,开发者可以更容易地理解代码在运行时的行为和状态,并可以更快速地诊断问题。Spyderdebug整合了Python的pdb(Python调试器)和Qt界面,使得开发者可以在Spyder IDE自身干净整洁的界面下完成源代码的编辑、调试和数据观察。

    2024-09-17
    25
  • MySQL8自增主键变化[亲测有效]

    MySQL8自增主键变化[亲测有效]MySQL8自增主键变化 醉后不知天在水,满船清梦压星河。 一、简述 MySQL版本从5直接大跃进到8,相信MySQL8一定会有很多令人意想不到的改进,如果不想只会CRUD可以看看。 比如系统表引擎的

    2023-05-12
    144

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注