BITPOS key bit [start] [end]
返回字符串里面第一个被设置为1或者0的bit位。
返回一个位置,把字符串当做一个从左到右的字节数组,第一个符合条件的在位置0,其次在位置8,等等。
GETBIT 和 SETBIT 相似的也是操作字节位的命令。
默认情况下整个字符串都会被检索一次,只有在指定start和end参数(指定start和end位是可行的),该范围被解释为一个字节的范围,而不是一系列的位。所以start=0
并且 end=2
是指前三个字节范围内查找。
注意,返回的位的位置始终是从0开始的,即使使用了start来指定了一个开始字节也是这样。
和GETRANGE命令一样,start和end也可以包含负值,负值将从字符串的末尾开始计算,-1是字符串的最后一个字节,-2是倒数第二个,等等。
不存在的key将会被当做空字符串来处理。
返回值
Integer reply
命令返回字符串里面第一个被设置为1或者0的bit位。
如果我们在空字符串或者0字节的字符串里面查找bit为1的内容,那么结果将返回-1。
如果我们在字符串里面查找bit为0而且字符串只包含1的值时,将返回字符串最右边的第一个空位。如果有一个字符串是三个字节的值为0xff
的字符串,那么命令BITPOS key 0
将会返回24,因为0-23位都是1。
基本上,我们可以把字符串看成右边有无数个0。
然而,如果你用指定start和end范围进行查找指定值时,如果该范围内没有对应值,结果将返回-1。
##例子
redis> SET mykey "\xff\xf0\x00"
OK
redis> BITPOS mykey 0 # 查找字符串里面bit值为0的位置
(integer) 12
redis> SET mykey "\x00\xff\xf0"
OK
redis> BITPOS mykey 1 0 # 查找字符串里面bit值为1从第0个字节开始的位置
(integer) 8
redis> BITPOS mykey 1 2 # 查找字符串里面bit值为1从第2个字节(12)开始的位置
(integer) 16
redis> set mykey "\x00\x00\x00"
OK
redis> BITPOS mykey 1 # 查找字符串里面bit值为1的位置
(integer) -1
redis>
BITPOS key bit [start] [end]相关推荐
- 数据类型_分享redis中除5种基础数据类型以外的高级数据类型
众所周知,在redis中的数据类型有String(字符串).hash(哈希).list(列表).set(集合).zset(有序集合)五种.但在这5种之外还有高级数据类型. 今天和大家介绍下常用的高级数 ...
- Redis 04_位图bitmap
位图bitmap [字节数组] 位图不是真正的数据类型,它是定义在字符串类型中 一个字符串类型的值最多能存储512M字节的内容 位上限:2^(9+10+10+3)=2^32b --命令 设置某 ...
- Redis 基本操作
Redis 基本操作 参考:An introduction to Redis data types and abstractions 中文翻译:看云 Redis命令查询:Command Referen ...
- 3、数据类型一:strings
题外: 学习过程参考三份资料:<Redis入门指南>.<Redis实战>.http://redis.io 后面的学习笔记中会引入它们的内容或代码,在这里统一说明,后面笔记中便不 ...
- redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用
1.bitmap介绍 位图不是真正的数据类型,它是定义在字符串类型中,一个字符串类型的值最多能存储512M字节的内容 位上限:2^(9(512)+10(1024)+10(1024)+3(8b=1B)) ...
- 跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)
前言 对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string.hash.list.set.sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:b ...
- Redis—字符串和SDS
一.字符串 字符串的实现代码在sds.c和sds.h文件中. 1.1 字符串介绍 字符串是Redis中最为常见的数据存储类型,其底层实现是简单动态字符串sds(simple dynamic strin ...
- Redis 中 BitMap 的使用场景
BitMap# BitMap 原本的含义是用一个比特位来映射某个元素的状态.由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势是能大量的节省内存空 ...
- Redis五种数据类型介绍
概述 Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合.本文详细介绍这五种数据类型的使用方法.本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方 ...
最新文章
- ps光效插件_全套光效PS插件(2019),只有你想不到的,没有它做不到的PS特效...
- linux变量中代,linux中shell变量$#,$@,$0,$1,$2和变量${0%/*}
- hive外部表改为内部表_hive内部表外部表介绍
- 一个有趣的问题,讨论讨论
- 我的处女作《设计模式之禅》——前言
- android取消自动调试模式吗,Android进入调试模式的三种技巧
- C语言 结构体 struct Cat cat1;
- 浅谈K短路算法(KSP)之二(YEN .J算法求解)
- Jenkins 部署 jmeter + Ant
- 全志 Allwinner V3S 开发环境搭建 (一)虚拟机搭建 Oracle VM VirtualBox6.1 Ubuntu14.4
- MQL5 信号的优势
- Win10系统下CUDA10.0的安装
- oracle normsinv函数,统计函数NormSDist和NormSInv函数实现
- logstash: Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread “
- 微信注册崩溃?appid签名无法注册or如何查看签名是否一致?如何注册appid?jks和keystore的区别?
- violate 修饰的用法
- 编写程序求反正弦函数近似值
- hive表新增字段和字段注释修改
- android官网m魅族15,魅族15亮相安卓官网 圆形Home键设计
- 实验9-5 查找书籍 (20 分)
热门文章
- python 线程中出现执行错乱_多处理会导致Python崩溃,并在调用fork()时在另一个线程中出现错误...
- 毕业论文选题三步搞定!
- 映射递归循环-约瑟夫环问题递归解法的一点理解
- python教程怎么读_python怎么读本地文件
- LabVIEW2018安装教程
- 神经网络 | BP神经网络介绍(附源代码:BP神经网络-异或问题)
- 安装 | R2021a链接及Matlab运行图
- 项目开发时前端及数据库遇到的问题
- 一些常规形几何形状的绘制和效果填充(一)
- docker安装php怎么修改配置,怎么给docker配置内存大小?