Redis 字符串处理

Redis 在进行字符串处理时用到的命令

1、SET KEY VALUE


设置键的值,如果设置成功返回OK。

127.0.0.1:6379> SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]
  • EX seconds:设置过期时间,单位:秒。
  • PX milliseconds:设置过期时间,单位:毫秒。
  • NX:该键值不存在时执行赋值操作。
  • XX:该键值已存在时执行赋值操作。

例如,

127.0.0.1:6379> SET NAME "randyma" EX 60 NX
OK
127.0.0.1:6379> GET NAME
"randyma"
127.0.0.1:6379> SET NAME "RANDY" EX 10 XX
OK
127.0.0.1:6379> GET NAME
"RANDY"
127.0.0.1:6379> GET NAME
(nil)

2、GET KEY VALUE


 获取键的值,如果键不存在,返回nil,如果返回的不是字符串,则提示错误。

127.0.0.1:6379> GET KEY

3、GETRANGE


获取键值字符串中子字符串的值,按照偏移量决定,从start开始到end结束。

可以使用负偏移,表示从字符串的末尾开始计算偏移量。

127.0.0.1:6379> GETRANGE KEY_NAME start end

例如,

127.0.0.1:6379> SET ADDRESS "NJ XW SJ NO"
OK
127.0.0.1:6379> GETRANGE ADDRESS 0 1
"NJ"
127.0.0.1:6379> GETRANGE ADDRESS 0 2
"NJ "
127.0.0.1:6379> GETRANGE ADDRESS 0 3
"NJ X"
127.0.0.1:6379> GETRANGE ADDRESS 0 4
"NJ XW"
127.0.0.1:6379> GETRANGE ADDRESS 0 -1
"NJ XW SJ NO"

4、GETSET


指定该键的新值,并且返回其旧值。如果该键不存在,则返回nil。

127.0.0.1:6379> GETSET KEY VALUE

例如,

127.0.0.1:6379> SET ADDRESS "NJ XW SJ NO"
OK
127.0.0.1:6379> GETSET ADDRESS "NJ XW"
"NJ XW SJ NO"
127.0.0.1:6379> GET ADDRESS
"NJ XW"

5、SETBIT


设置在键处存储的字符串中偏移处的位值。OFFSET:0 ~ 2^32 - 1

127.0.0.1:6379> SETBIT KEY_NAME OFFSET VALUE

例如,

127.0.0.1:6379> SETBIT NUM 4294967295 1
(integer) 1
127.0.0.1:6379> SETBIT NUM 1 1
(integer) 1

6、GETBIT


设置在键处存储的字符串中偏移处的位值。OFFSET:0 ~ 2^32 - 1

如果偏移的位置的值为1,则返回1,该位置的值为0,则返回0。

127.0.0.1:6379> GETBIT KEY_NAME OFFSET

例如,

127.0.0.1:6379> GETBIT NUM 4294967295
(integer) 1
127.0.0.1:6379> GETBIT NUM 3294967295
(integer) 0

7、MGET 


用于获取多个指定键的值。对于不存在的键返回nil。

Redis区分大小写,所以取值的时候注意区分。

127.0.0.1:6379> MGET KEY KEY [key ...]

例如,

127.0.0.1:6379> SET NUM1 1
OK
127.0.0.1:6379> SET NUM2 2
OK
127.0.0.1:6379> SET NUM3 3
OK
127.0.0.1:6379> MGET num1 num2 num3
1) (nil)
2) (nil)
3) (nil)
127.0.0.1:6379> MGET NUM1 NUM2 NUM3
1) "1"
2) "2"
3) "3"

8、SETEX


用于设置指定键的字符串值,并且设置其过期时间,单位:秒。

与SET命令不同的是,SETEX是一个原子操作(Atomic),而SET则不是。

SET命令会分解为两个子操作(SET、EXPIRE)。

127.0.0.1:6379> SETEX KEY SECONDS VALUE 

例如,

127.0.0.1:6379> SETEX NUM1 60 850725
OK
127.0.0.1:6379> TTL NUM1
(integer) 56
127.0.0.1:6379> GET NUM1
"850725"

9、SETNX


当指定的键值不存在时,设置该键的字符串值。如果不存在,则SETNX等同于SET命令。

返回值为1,表示该键不存在,赋值成功。

返回值为0,表示该键存在,赋值不成功。

127.0.0.1:6379> SETNX KEY VALUE 

例如,

127.0.0.1:6379> SETNX NAME "randyma"
(integer) 1
127.0.0.1:6379> SETNX NAME "randy"
(integer) 0
127.0.0.1:6379> GET NAME
"randyma"

10、SETRANGE


用于修改指定键的字符串内容,从OFFSET偏移量开始,使用VALUE值往后替换。

替换的长度为给定的字符串的长度。

127.0.0.1:6379> SETRANGE KEY OFFSET VALUE 

例如,

127.0.0.1:6379> SET KEY "Hello World!"
OK
127.0.0.1:6379> SETRANGE KEY 6 "redis"
(integer) 12
127.0.0.1:6379> GET KEY
"Hello redis!"
127.0.0.1:6379> SETRANGE KEY 7 "redis"
(integer) 12
127.0.0.1:6379> GET KEY
"Hello rredis"

11、STRLEN


用于获取指定键的字符串长度。如果该键不存在,返回0。

127.0.0.1:6379> STRLEN KEY 

例如,

127.0.0.1:6379> STRLEN KEY1
(integer) 0
127.0.0.1:6379> STRLEN key1
(integer) 12
127.0.0.1:6379> GET key1
"Hello rredis"

12、MSET


用于批量设置多个键的字符串值。

Redis区分大小写,所以取值的时候注意区分。

127.0.0.1:6379> MSET KEY VALUE [key value ...]

例如,

127.0.0.1:6379> MSET KEY1 "HA" KEY2 "HA" KEY3 "BYE"
OK
127.0.0.1:6379> MGET KEY1 KEY2 KEY3
1) "HA"
2) "HA"
3) "BYE"

13、MSETNX


用于同时设置多个键与多个字符串值。如果设置的键不存在,MSETNX等同于MSET命令。

但如果指定的键有一个已经存在,则MSETNX不做任何操作。

返回值为1,表示该键不存在,赋值成功。

返回值为0,表示该键存在,赋值不成功。

127.0.0.1:6379> MSETNX KEY VALUE [key value ...]

例如,

127.0.0.1:6379> MSETNX KEY1 "Hello" KEY2 "World!"
(integer) 1
127.0.0.1:6379> MSETNX KEY2 "worlds" KEY3 "Redis"
(integer) 0
127.0.0.1:6379> MGET KEY1 KEY2 KEY3
1) "Hello"
2) "World!"
3) (nil)

14、PSETEX


用于设置指定键的字符串值,并且设置其过期时间,单位:毫秒。

与SET命令不同的是,PSETEX是一个原子操作(Atomic),而SET则不是。

SET命令会分解为两个子操作(SET、EXPIRE)。

127.0.0.1:6379> PSETEX KEY milliseconds value

例如,

127.0.0.1:6379> PSETEX KEY1 10000 "Hello"
OK
127.0.0.1:6379> PTTL KEY1
(integer) 3858
127.0.0.1:6379> GET KEY1
(nil)

15、INCR


用于将键值表示的整数值增加1。如果该键不存在,则创建该键,并将其值设置为0。

如果键包含错误类型值或包含无法显示的字符串,则返回错误。

并且,整数取值范围:-2^63 ~ 2^63 - 1

127.0.0.1:6379> INCR KEY 

例如,

127.0.0.1:6379> SET KEY1 "ABC"
OK
127.0.0.1:6379> INCR KEY1
(error) ERR value is not an integer or out of range
127.0.0.1:6379> SET KEY1 9223372036854775807
OK
127.0.0.1:6379> INCR KEY1
(error) ERR increment or decrement would overflow
127.0.0.1:6379> INCR KEY1
127.0.0.1:6379> SET KEY1 9223372036854775806
OK
127.0.0.1:6379> INCR KEY1
(integer) 9223372036854775807

16、INCRBY


用于将键值表示的整数值增加指定值。如果该键不存在,则创建该键,并将其值设置为0。

如果键包含错误类型值或包含无法显示的字符串,则返回错误。

127.0.0.1:6379> INCRBY KEY INCREMENT

例如,

127.0.0.1:6379> SET KEY1 9223372036854775806
OK
127.0.0.1:6379> INCR KEY1
(integer) 9223372036854775807
127.0.0.1:6379> INCRBY KEY1 -1
(integer) 9223372036854775806
127.0.0.1:6379> INCRBY KEY1 -1
(integer) 9223372036854775805
127.0.0.1:6379> INCRBY KEY1 -1
(integer) 9223372036854775804
127.0.0.1:6379> INCRBY KEY1 -1
(integer) 9223372036854775803
127.0.0.1:6379> INCRBY KEY1 5
(error) ERR increment or decrement would overflow
127.0.0.1:6379> INCRBY KEY1 4
(integer) 9223372036854775807

17、INCRBYFLOAT


用于将键值表示的字符串表示为浮点数,按照指定的值进行增加。

如果该键不存在,则创建该键,并将其值设置为0。

如果键包含错误类型值或包含无法显示的字符串,则返回错误。

127.0.0.1:6379> INCRBYFLOAT KEY INCREMENT 

例如,

127.0.0.1:6379> SET KEY1 1.23
OK
127.0.0.1:6379> INCRBYFLOAT KEY1 0.5
"1.73"

18、DECR


用于将键值表示的整数值减少1。如果该键不存在,则创建该键,并将其值设置为0。

如果键包含错误类型值或包含无法显示的字符串,则返回错误。

并且,整数取值范围:-2^63 ~ 2^63 - 1

127.0.0.1:6379> DECR KEY 

例如,

127.0.0.1:6379> SET KEY1 -9223372036854775807
OK
127.0.0.1:6379> DECR KEY1
(integer) -9223372036854775808
127.0.0.1:6379> DECR KEY1
(error) ERR increment or decrement would overflow

19、DECRBY


用于将键值表示的整数值减少指定值。如果该键不存在,则创建该键,并将其值设置为0。

如果键包含错误类型值或包含无法显示的字符串,则返回错误。

127.0.0.1:6379> DECRBY KEY DECREMENT 

例如,

(integer) 9223372036854775802
127.0.0.1:6379> DECRBY KEY1 -1
(integer) 9223372036854775803
127.0.0.1:6379> DECRBY KEY1 -1
(integer) 9223372036854775804
127.0.0.1:6379> DECRBY KEY1 -1
(integer) 9223372036854775805
127.0.0.1:6379> DECRBY KEY1 -1
(integer) 9223372036854775806
127.0.0.1:6379> DECRBY KEY1 -1
(integer) 9223372036854775807
127.0.0.1:6379> DECRBY KEY1 -1
(error) ERR increment or decrement would overflow

20、APPEND


在指定的键后加入指定的字符串,如果该键不存在,则APPEND等同于SET操作。

但是,APPEND返回的是操作后字符串的长度。

127.0.0.1:6379> APPEND KEY VALUE 

例如,

127.0.0.1:6379> GET KEY
(nil)
127.0.0.1:6379> APPEND KEY 1
(integer) 1
127.0.0.1:6379> GET KEY
"1"
127.0.0.1:6379> APPEND KEY "00000"
(integer) 6
127.0.0.1:6379> GET KEY
"100000"

 

转载于:https://www.cnblogs.com/randyma/p/6856434.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值