文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Redis字符串类型的常用命令小结

2022-06-04 17:25

关注

Redis字符串类型

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

一、最简单的命令

1、获得符合规则的键名列表


keys *

这里的*号,是指列出所有的键,同时*号也可以替换成其他支持glob风格通配符格式,具体规则如下:

?:匹配一个字符

*:匹配任意个(包括0个)字符

[]:匹配括号间多大任一个字符,可以使用“-”表示范围,如[a-z]

x:匹配字符x,用于转义,如需匹配问号,需要?才能匹配

这里说明一下,redis命令是不区分大小写的,还有就是keys命令是需要遍历Redis中所有的键的,当键很多时,很耗费性能的。所以在生产环境中要尽可能的不用。

例:


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四个。

字符串的操作命令就这些了。位的命令还是很有用的,比如我们在存储性别的时候可以把性别的类型设置为一个比特位,这样超级省空间的。

总结

以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯