Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-bitcount.html

Redis BITCOUNT 命令

Redis 字符串(Strings)底层数据结构及所有相关命令 Redis 字符串(Strings)底层数据结构及所有相关命令


Redis BITCOUNT 命令计算指定的字符串中,被设置为 1 的比特位的数量。

一般情况下,指定的整个字符串都会被进行计数,通过指定额外的 start 和 end 参数,可以让计数只在特定的字符串索引位置(索引以 8 位,即 1 byte 作为单位)上进行。start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值,比如 -1 表示最后一个字节,-2 表示倒数第二个字节,以此类推。不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0。

命令格式

BITCOUNT key [start end]

可用版本:>=2.6.0

时间复杂度:O(N)

可选参数

BITCOUNT 命令可以选择特定的 byte 范围计数,具体如下:

  • start:设置位索引起始位置(包含该位置计数),第一个位置以 0 开始,start 参数需和 end 参数同时设置才合法。
  • end:设置位索引结束位置(包含该位置计数),end 参数需和 start 参数同时设置才合法。

注意:BITCOUNT 的 start 和 end 参数的索引意义是以 1 byte 作为单位,如 bitcount mykey 0 0 命令表示 mykey 的字符串的第一个字节中比特位 1 的个数(即字符串第一个字符的比特位为 1 的个数)。

命令返回值

返回被设置为 1 的数量。

示例

redis> SET mykey foobar
OK
redis> BITCOUNT mykey
(integer) 26
redis> BITCOUNT mykey 0 0
(integer) 4
redis> BITCOUNT mykey 1 1
(integer) 6

使用场景

BITCOUNT 和 SETBIT 一起可以实现用户上线次数的统计

Redis OBJECT 命令允许从内部查看指定 key 的 Redis 对象信息。它通常用在调试,或者了解相关 key 是否使用特殊编码的 ...
SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。 ...
Redis GET 命令返回指定 key 所关联的字符串值。如果指定的 key 不存在时,返回特殊值 nil。此外,如果指定的 key 存储 ...
TYPE 命令返回指定 key 所储存的值的类型。 ...
Redis COMMAND 命令用于返回所有的 Redis 命令的详细信息,并以数组形式展示。 ...