string获取 倒数 下标_Redis系列:Redis字符串(STRING)介绍

本文详细介绍了Redis中STRING类型的多种命令,如APPEND用于追加值,DECR实现减1操作,GET获取值等。还说明了各命令的使用方法、效果及特殊情况,如key不存在或value非数字时的处理,最后提醒可参考官方文档了解更多。
97c0fe0e2b1544deb09f717a38592fde

STRING

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

"helloredisx00x00x00x00x00x00x00x00x00x00--java"

STRLEN

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

127.0.0.1:6379> STRLEN k1

(integer) 26

OK,STRING相关的命令我们就介绍这么多,当然还有很多其他的,小伙伴们可以参考官方文档http://www.redis.cn/commands.html。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值