Redis字符串类型
字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
一、最简单的命令
1、获得符合规则的键名列表
keys *
这里的*号,是指列出所有的键,同时*号也可以替换成其他支持glob风格通配符格式,具体规则如下:
"htmlcode">
redis 127.0.0.1:6379> set name "joan" OK redis 127.0.0.1:6379> get name "joan" redis 127.0.0.1:6379> set aaa 1 OK redis 127.0.0.1:6379> set bbb 2 OK redis 127.0.0.1:6379> keys * 1) "aaa" 2) "name" 3) "bbb"
2、判断键是否存在
exists foo
如果存在返回证书类型1,否则返回0
例:
redis 127.0.0.1:6379> exists name (integer) 1 redis 127.0.0.1:6379> exists n (integer) 0
3、删除键
del foo
返回的是删除的键的个数,这里说明也可以一次删除多个键,只需空格再加键就可以了。例如:
del foo bar
如果删除一个键,这个键已经不存在了就会返回0 。
例:
redis 127.0.0.1:6379> keys * 1) "aaa" 2) "name" 3) "bbb" redis 127.0.0.1:6379> del aaa bbb (integer) 2 redis 127.0.0.1:6379> del aaa (integer) 0
4、获得键值的数据类型
type foo
这里在重复一下上次说过的,redis的数据类型有:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
下面开始详细介绍每种数据类型的命令。
二、字符串类型
字符串类型是Redis中最基本的数据类型,他能存储任意形式的字符串,包括二进制数据。字符串类型也是其他四种数据类型的基础。也就是说,其他四种数据类型都是由字符串类型所组成的。
常用命令如下:
set key value
#赋值,返回值是OK
get key
#取值,返回值是对应键的值
incr key
#递增数字,虽然是字符串类型,但如果可以是整型的话,也是可以使用此命令递增的,返回值是递增后的值,递增操作后,再次获取该key值,值为新值。
例:
redis 127.0.0.1:6379> get age "32" redis 127.0.0.1:6379> incr age (integer) 33 redis 127.0.0.1:6379> get age "33"
incrby key number
#这个命令和上一个类似,只不过可以通过number指定增长的数量,返回值同样是增长后的值
例:
redis 127.0.0.1:6379> incrby age 5 (integer) 38 redis 127.0.0.1:6379> get age "38"
decr key
#递减数字,类似递增,这里不做过多解释了
decrby key number
#类似于incrby,这里大家应该可以猜到,decrby key number和incrby key -number是一个意思
incrbyfloat key floatnumber
#增加指定浮点数,这个是增加一个双精度的浮点数,位数多了就会不准
append key value
#向尾部追加值,如 append foo ” value”,这个时候用引号是为了标识有空格,返回值为值的总长度
例:
redis 127.0.0.1:6379> append name 'hello' (integer) 9 redis 127.0.0.1:6379> get name "joanhello"
strlen key
#获取字符串值总长度,返回值就是长度,如果key不存在,则返回0
mget key [key ...]
#同时获得多个键值,键值的列表
例:
redis 127.0.0.1:6379> mget name age float 1) "joanhello" 2) "38" 3) "33.33"
mset key value [key value ...]
#同时设置多个键值,成功返回OK
redis 127.0.0.1:6379> mset name "joan" age 9 float 33.33 OK redis 127.0.0.1:6379> mget name age float 1) "joan" 2) "9" 3) "33.33"
setbit/getbit
#这个是位操作,具体示例如下:
redis set foo bar OK
这时赋值给foo值为bar,对应的ASCII码为98、97、114,转换为八位二进制为:
01100010、01100001、01110010
进行如下操作:
redis> getbit foo 0 0 redis> getbit foo 1 1 redis> getbit foo 2 1 redis> getbit foo 3 0
所以getbit就是获取key对应的字符串类型键值指定位置的二进制的值(0或1),索引从0开始。
如果获取超出了最大值,也返回0.
而相反,setbit就是来设置key对应的指定位置的二进制值的。返回值是该位置的旧值。例如
redis> setbit foo 6 0 (integer) 1
如果要设置的值超过了最大长度,则命令会将最大长度之后到最大长度之间未设置的值统一设置为0,同理,设置一个不存在的键值,也会自动把它前面所有未设置的位置二进制设为0。如:
redis> setbit qqq 8 1 (integer) 0
则会把qqq对应的值变为00000001 。
bitcount key
命令可以返回字符串类型键值中二进制值为1的个数。
同时他的参数还可以设置查询的范围,
bitcount foo 0 1
#意思是只查询ba两个字节中包含二进制值为1的个数。
最后一个bitop命令,可以进行位操作。
bitop OR res foo1 foo2
#意思是把foo1和foo2做OR运算,结果存入res中。bitop支持的位操作有ND、OR、XOR、NOT四个。
字符串的操作命令就这些了。位的命令还是很有用的,比如我们在存储性别的时候可以把性别的类型设置为一个比特位,这样超级省空间的。
总结
以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 文章.2004-被遗忘的时光【华博音乐】【WAV+CUE】
- 群星《青葱韶歌》原力计划·毕业季企划合辑[FLAC+分轨][661M]
- 群星《抖烧 DSD》抖音神曲 [WAV分轨][992M]
- 庾澄庆《哈林天堂》索尼音乐[WAV+CUE][1G]
- 英雄联盟全球总决赛多久打一次 全球总决赛举办频率介绍
- 第二届老头杯什么时候开始选人 第二届老头杯选人时间介绍
- 英雄联盟第二届老头杯什么时候开始 老头杯s2赛程时间队伍名单汇总
- AI赋能卓越显示技术共筑数字未来:三星显示器产品矩阵亮相2024进博会
- 技术剖析:天玑9400如何打造移动最强GPU和游戏体验?
- 顶级装备 实力登顶:三星显示器双十一焕新升级最后冲刺
- 陈影《绝色靓声》WAV+CUE
- 龚玥《禅是一枝花(6N纯银SQCD)》原抓WAV+CUE
- 刘德丽《寂寞在唱歌HQCD+A2HD5》[WAV+CUE]
- 萧亚轩《钻石糖》金牌大风[WAV+CUE][989M]
- 王菲《王菲精选-菲卖品》环球唱片SHM-SACD[ISO][1.9G]