温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis字符串命令有哪些

发布时间:2021-12-07 14:33:27 来源:亿速云 阅读:110 作者:iii 栏目:大数据

这篇文章主要介绍“Redis字符串命令有哪些”,在日常操作中,相信很多人在Redis字符串命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis字符串命令有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

APPEND

使用APPEND命令时,如果key已经存在,则会直接在value后追加值,如果key不存在,则会先创建一个value为空字符串的key,然后再追加:

127.0.0.1:6379> APPEND k1 hello
(integer) 5
127.0.0.1:6379> GET k1
"hello"
127.0.0.1:6379> APPEND k1 world
(integer) 10
127.0.0.1:6379> GET k1
"helloworld"

DECR

DECR命令可以实现对value的减1操作,如果key不存在,则key对应的初始值会被置为0,如果key的value不为数字,则会报错,如下:

127.0.0.1:6379> SET k3 19
OK
127.0.0.1:6379> DECR k3
(integer) 18
127.0.0.1:6379> GET k3
"18"
127.0.0.1:6379> SET k4 aa
OK
127.0.0.1:6379> DECR k4
(error) ERR value is not an integer or out of range

DECRBY

DECRBY和DECR类似,不同的是DECRBY可以指定步长,如下:

127.0.0.1:6379> GET k3
"8"
127.0.0.1:6379> DECRBY k3 4
(integer) 4
127.0.0.1:6379> GET k3
"4"

GET

GET命令用来获取对应key的value,如果key不存在则返回nil,如下:

127.0.0.1:6379> GET k5
(nil)

GETRANGE

GETRANGE用来返回key所对应的value的子串,子串由start和end决定,从左往右计算,如果下标是负数,则从右往左计算,其中-1表示最后一个字符,-2是倒数第二个…,如下:

127.0.0.1:6379> SET k1 helloworld
OK
127.0.0.1:6379> GETRANGE k1 0 2
"hel"
127.0.0.1:6379> GETRANGE k1 -3 -1
"rld"

GETSET

GETSET命令可以用来获取key所对应的value,并对key进行重置,如下:

127.0.0.1:6379> SET k1 v1
OK
127.0.0.1:6379> GET k1
"v1"
127.0.0.1:6379> GETSET k1 vv
"v1"
127.0.0.1:6379> GET k1
"vv"

INCR

INCR操作可以对指定key的value执行加1操作,如果指定的key不存在,那么在加1操作之前,会先将key的value设置为0,如果key的value不是数字,则会报错。如下:

127.0.0.1:6379> INCR k2
(integer) 1

INCRBY

INCRBY和INCR功能类似,不同的是可以指定增长的步长,如下:

127.0.0.1:6379> INCRBY k2 99
(integer) 100

INCRBYFLOAT

INCRBYFLOAT命令可以用来增长浮点数,如下:

127.0.0.1:6379> SET k1 0.5
OK
127.0.0.1:6379> INCRBYFLOAT k1 0.33
"0.83"

MGET与MSET

MGET与MSET分别用来批量设置值和批量获取值,如下:

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

SETEX

SETEX用来给key设置value,同时设置过期时间,等效于先给key设置value,再给key设置过期时间,如下:

127.0.0.1:6379> SETEX k1 30 v1
OK
127.0.0.1:6379> TTL k1
(integer) 26
127.0.0.1:6379> GET k1
"v1"

PSETEX

PSETEX的作用和SETEX类似,不同的是,这里设置过期时间的单位是毫秒,如下:

127.0.0.1:6379> PSETEX k1 60000 v1
OK
127.0.0.1:6379> PTTL k1
(integer) 55412

SETNX

SETNX是 SET if Not eXists的简写,SET命令在执行时,如果key已经存在,则新值会覆盖掉旧值,而对于SETNX命令,如果key已经存在,则不做任何操作,如果key不存在,则效果等同于SET命令。如下:

127.0.0.1:6379> SETNX k1 v1
(integer) 1
127.0.0.1:6379> SETNX k1 vv
(integer) 0
127.0.0.1:6379> GET k1
"v1"

MSETNX

MSETNX兼具了SETNX和MSET的特性,但是MSETNX在执行时,如果有一个key存在,则所有的都不会执行,如下:

127.0.0.1:6379> MSETNX k1 v1 k2 v2
(integer) 0

因为k1已经存在,所以k2也没执行成功。

SETRANGE

SETRANGE用来覆盖一个已经存在的key的value,如下:

127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> SETRANGE k1 5 redis
(integer) 10
127.0.0.1:6379> get k1
"helloredis"

但是如果已经存在的key的value长度小于offset,则不足的地方用0补齐,如下:

127.0.0.1:6379> set k1 helloredis
OK
127.0.0.1:6379> SETRANGE k1 20 --java
(integer) 26
127.0.0.1:6379> GET k1
"helloredis\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--java"

STRLEN

STRLEN用来计算key的value的长度,如下:

127.0.0.1:6379> STRLEN k1
(integer) 26

到此,关于“Redis字符串命令有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI