①Redis String 字符串类型【命令汇总】

2023-11-17 10:17:46 浏览数 (1)

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~

①Redis String 字符串类型【命令汇总】

命令不区分大小写,而key是区分大小写的

始终实用的帮助命令,不会用就找它:help @类型

代码语言:javascript复制
help @string
help @list
help @hash
1. set key value 设置指定key的值

set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

代码语言:javascript复制
set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

SET命令有EXPXNXXXKEEPTLL五个可选参数,其中KEEPTLL为6.0版本添加的可选参数,其他为2.6.12版本添加的可选参数。

  • EX seconds:以秒为单位,设置过期时间
  • PX milliseconds:以毫秒为单位,设置过期时间
  • EXAT timestamp:设置以秒为单位的UNIX时间戳所对应的时间为过期时间
  • PXAT milliseconds-timestamp:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间
  • NX:当键不存在的时候,设置键值
  • XX:当键存在的时候,设置键值
  • KEEPTLL:保存设置前指定键的生存时间
  • GET:返回指定键原本的值,若键不存在时返回nil

SET命令使用EXPXNX参数,效果等同于SETEXPSETEXSETNX命令,根据官方文档描述:SETEXPSETEXSETNX命令未来可能会被淘汰。

EXATPXATGET参数为Redis6.2新增的可选参数。

返回值

  • 设置成功则返回OK
  • 返回nil代表未执行SET命令,如不满足NX、XX条件等情况
  • 若使用SET参数,则返回键原本的值,若键不存在则返回nil
代码语言:javascript复制
set k1 v1       # 设置键k1值为v1

set k2 v2 ex 10 # 设置键k2值为v2,十秒后过期

ttl k2          # 查看k2的过期时间

# 十秒后,k2过期了...
set k2 v2 px 9000 # 设置键k2值为v2,9000毫秒后过期

# 九秒后,k2又过期了...
set k2 v2 nx    # 当k2不存在时,创建设置键k2值为v2
set k2 v22 xx   # 当k2存在时,设置键k2的值为v22
2. get key 获取指定key的值

get key

代码语言:javascript复制
get k1 # 获取k1的值
get k2 # 获取k2的值

k3不存在,返回空

3. mset key value 设置多个键值

mset key value [key value ...]

代码语言:javascript复制
# 设置多个键值:kk1 vv1、kk2 vv2、kk3 vv3
mset kk1 vv1 kk2 vv2 kk3 vv3

4. mget key 获取多个指定键的值

mget key [key ...]

代码语言:javascript复制
# 一次获取多个键的值
mget k1 k2 kk1 kk2 kk3

5. msetnx key value 设置多个键值(键不存在为前提)

msetnx key value [key value ...]

代码语言:javascript复制
# 键a不存在,创建成功
msetnx a a
# 键a存在,键b不存在,创建不成功
msetnx a a b b
# !多个键值中,只要出现不符合条件的键值,msetnx命令就不会执行!

6. getrange 获取指定范围内的值

getrange key start end

代码语言:javascript复制
# 获取k1键所有下标范围内的值
getrange k1 0 -1
# 获取k1键下标0-3范围内的值
getrange k1 0 3

7. setrange 设置指定范围的值

setrange key offset value

代码语言:javascript复制
# 设置k1键从下标0开始区间范围的值,返回值是当前k1键的值的长度
setrange k1 0 xxxx

8. incr key 递增数字

一定要是数字才能进行加减

incr key

代码语言:javascript复制
# 递增K2键的值
incr k2

9. decr key 递减数字

一定要是数字才能进行加减

decr key

代码语言:javascript复制
# 递减K2键的值
decr k2

10.incrby 增加指定的整数

一定要是数字才能进行加减

incrby key decrement

代码语言:javascript复制
# 为k2键的值增加90
incrby k2 90

11.decrby 减去指定的整数

一定要是数字才能进行加减

decrby key decrement

代码语言:javascript复制
# 为k2键的值减去100
decrby k2 100

12. strlen key 获取指定键的值长度(字符串长度)

strlen key

代码语言:javascript复制
# 获取k1键的值的字符串长度
strlen k1

strlen k2
strlen kk1
strlen kk2
strlen kk3

13. append 内容追加

append key value

代码语言:javascript复制
#向k1键的值最佳内容"ooooo"
append k1 ooooo

14. setex 设置带过期时间的key

setex key seconds value

代码语言:javascript复制
# 设置键值对 k3 v3,过期时间为10秒
setex k3 10 v3

15. setnx 设置指定key的值(key不存在为前提)

setnx key value

代码语言:javascript复制
# key不存在时,创建键值对,返回成功的个数
 setnx k3 v3

16. getset 设置指定key的值并返回旧值

getset key value

代码语言:javascript复制
getset k1 oo29oo

0 人点赞