个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
Redis String
- ①Redis String 字符串类型【命令汇总】
- 1. set key value 设置指定key的值
- 2. get key 获取指定key的值
- 3. mset key value 设置多个键值
- 4. mget key 获取多个指定键的值
- 5. msetnx key value 设置多个键值(键不存在为前提)
- 6. getrange 获取指定范围内的值
- 7. setrange 设置指定范围的值
- 8. incr key 递增数字
- 9. decr key 递减数字
- 10.incrby 增加指定的整数
- 11.decrby 减去指定的整数
- 12. strlen key 获取指定键的值长度(字符串长度)
- 13. append 内容追加
- 14. setex 设置带过期时间的key
- 15. setnx 设置指定key的值(key不存在为前提)
- 16. getset 设置指定key的值并返回旧值
①Redis String 字符串类型【命令汇总】
命令不区分大小写,而key是区分大小写的
始终实用的帮助命令,不会用就找它:help @类型
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]
set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
SET
命令有EX
、PX
、NX
、XX
、KEEPTLL
五个可选参数,其中KEEPTLL
为6.0版本添加的可选参数,其他为2.6.12版本添加的可选参数。
EX seconds
:以秒为单位,设置过期时间PX milliseconds
:以毫秒为单位,设置过期时间EXAT timestamp
:设置以秒为单位的UNIX时间戳所对应的时间为过期时间PXAT milliseconds-timestamp
:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间NX
:当键不存在的时候,设置键值XX
:当键存在的时候,设置键值KEEPTLL
:保存设置前指定键的生存时间GET
:返回指定键原本的值,若键不存在时返回nil
SET
命令使用EX
、PX
、NX
参数,效果等同于SETEX
、PSETEX
、SETNX
命令,根据官方文档描述:SETEX
、PSETEX
、SETNX
命令未来可能会被淘汰。
EXAT
、PXAT
、GET
参数为Redis6.2新增的可选参数。
返回值
- 设置成功则返回OK
- 返回nil代表未执行SET命令,如不满足NX、XX条件等情况
- 若使用SET参数,则返回键原本的值,若键不存在则返回nil
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
get k1 # 获取k1的值
get k2 # 获取k2的值
k3不存在,返回空
3. mset key value 设置多个键值
mset key value [key value ...]
# 设置多个键值:kk1 vv1、kk2 vv2、kk3 vv3
mset kk1 vv1 kk2 vv2 kk3 vv3
4. mget key 获取多个指定键的值
mget key [key ...]
# 一次获取多个键的值
mget k1 k2 kk1 kk2 kk3
5. msetnx key value 设置多个键值(键不存在为前提)
msetnx key value [key value ...]
# 键a不存在,创建成功
msetnx a a
# 键a存在,键b不存在,创建不成功
msetnx a a b b
# !多个键值中,只要出现不符合条件的键值,msetnx命令就不会执行!
6. getrange 获取指定范围内的值
getrange key start end
# 获取k1键所有下标范围内的值
getrange k1 0 -1
# 获取k1键下标0-3范围内的值
getrange k1 0 3
7. setrange 设置指定范围的值
setrange key offset value
# 设置k1键从下标0开始区间范围的值,返回值是当前k1键的值的长度
setrange k1 0 xxxx
8. incr key 递增数字
一定要是数字才能进行加减
incr key
# 递增K2键的值
incr k2
9. decr key 递减数字
一定要是数字才能进行加减
decr key
# 递减K2键的值
decr k2
10.incrby 增加指定的整数
一定要是数字才能进行加减
incrby key decrement
# 为k2键的值增加90
incrby k2 90
11.decrby 减去指定的整数
一定要是数字才能进行加减
decrby key decrement
# 为k2键的值减去100
decrby k2 100
12. strlen key 获取指定键的值长度(字符串长度)
strlen key
# 获取k1键的值的字符串长度
strlen k1
strlen k2
strlen kk1
strlen kk2
strlen kk3
13. append 内容追加
append key value
#向k1键的值最佳内容"ooooo"
append k1 ooooo
14. setex 设置带过期时间的key
setex key seconds value
# 设置键值对 k3 v3,过期时间为10秒
setex k3 10 v3
15. setnx 设置指定key的值(key不存在为前提)
setnx key value
# key不存在时,创建键值对,返回成功的个数
setnx k3 v3
16. getset 设置指定key的值并返回旧值
getset key value
getset k1 oo29oo