背景:我记不住那么多命令,又是Linux命令,又是Git命令,又是kubernetes的命令,又是maven命令,又是redis命令。所谓好记性不如烂笔头,记下来吧。
对于中文来说,可以使用 redis-cli --raw
一、string类型
二进制安全、最大1G、可以包含任何数据,都是以二进制的方式进行存储的
1. set : 设定key和value的值
2. get : 获取指定key的相应的value的值
3. setnx : 指定的 key 不存在时,为 key 设置指定的值,如果已经存在,则不执行操作
4. mset : 批量设定key和value
5. msetnx : 批量设定key和value,党指定的key不存在时为key设置指定的值,否则不进行任何操作。
6. getset : 修改某个key的value值,并返回其 旧值
7. mget : 获取一个或多个key的值
8. setex : 为指定的 key 设置值及其过期时间。如果 key 已经存在, 将会替换旧的值,单位为秒
9. psetex : 作用同上一条命令,只是单位不同,为毫秒
10. strlen : 获取字符串值的长度。 当 key 不存在时,返回 0
11. setrange : 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始,并返回修改后的字符串长度
12. getrange : 返回key的字符串值的子字符串,左闭右闭 [start,end] 按照字节来进行
13. incr /incrby/incrbyfloat
incr 对不存在的key是可以操作的,首先创建一个0值,然后自增
incrby对不存在的key是无法操作的,会报错误
incrbyfloat 会将无用的后缀零忽略掉,会将浮点变为整数。
14. decr/decrby : 将 key 中储存的数字值减一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 decr 操作。
15. append : 在原有字符串后进行追加操作
16. setbit : 用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
其中的offset 是从左到右进行自增,也就是从高位到低位进行计数,并自增offset
17. getbit : 获取指定key的值的偏移量上的某位的值
# 1. set
127.0.0.1:6379> set name beijingtiananmen
OK
# 2. get
127.0.0.1:6379> get name
"beijingtiananmen"
# 3. setnx : 如果key不存在,则新建一个key/value,如果key存在,则不执行命令
127.0.0.1:6379> setnx name gugongbowuyuan
(integer) 0
127.0.0.1:6379> get name
"beijingtiananmen"
127.0.0.1:6379>
# 4. mset 多个key/value一起设置
127.0.0.1:6379> mset scenic1 beijingtiananmen scenic2 gugongbowuyuan scenic3 jingshangongyuan
OK
# 5. msetnx : 和上面第3个命令相似,区别在于msetnx是一个批量操作
127.0.0.1:6379> msetnx scenic1 changcheng scenic2 yiheyuan scenic3 yuanmingyuan
(integer) 0
# 都存在scenic1/scenic2/scenic3,所以不执行命令,还是原来的值
127.0.0.1:6379> mget scenic1 scenic2 scenic3
1) "beijingtiananmen"
2) "gugongbowuyuan"
3) "jingshangongyuan"
# 6. getset : 修改某个key的值,但设置后返回的是原来的旧值
127.0.0.1:6379> getset scenic1 beijingrenmindahuitang
"beijingtiananmen"
127.0.0.1:6379> get scenic1
"beijingrenmindahuitang"
# 假设 scenicXXX是一个不存在的key,则会创建一个新的key和value
127.0.0.1:6379> getset scenicXXX guojiabowuyuan
(nil)
127.0.0.1:6379> get scenicXXX
"guojiabowuyuan"
7. mget : 批量过去一些key的value,这个命令在第5条命令中有使用
127.0.0.1:6379> mget scenic1 scenic2 scenic3
1) "beijingtiananmen"
2) "gugongbowuyuan"
3) "jingshangongyuan"
8. setex : 设定一个key的有效期,单位为秒,注意格式 > setex key seconds value
127.0.0.1:6379> setex age 60 96
OK
127.0.0.1:6379> ttl age
(integer) 52
127.0.0.1:6379> ttl age
(integer) 49
ttl用于查看剩余多少秒
9. psetex : 设定一个key的有效期,单位为毫秒,注意格式 > setex key milliseconds value
127.0.0.1:6379> psetex age 60000 96
OK
127.0.0.1:6379> ttl age
(integer) 52
127.0.0.1:6379> ttl age
(integer) 49
ttl用于查看剩余多少秒
10. strlen : 查看一个key的value的长度
127.0.0.1:6379> get scenic1
"beijingrenmindahuitang"
127.0.0.1:6379> strlen scenic1
(integer) 22
11. setrange : 将字符串的某个位置开始进行替换,格式为: setrange key offset value
127.0.0.1:6379> setrange scenic1 7 guojiadajuyuan
(integer) 22
127.0.0.1:6379> get scenic1
"beijingguojiadajuyuang"
12. getrange : 截取某个字符串的值,功能类似substring,格式为: getrange key start end
127.0.0.1:6379> getrange scenic1 7 -1
"guojiadajuyuang"
13. incr/incrby/incrfloat
127.0.0.1:6379> set age 33
OK
127.0.0.1:6379> incr age
(integer) 34
127.0.0.1:6379> incrby age 10
(integer) 44
127.0.0.1:6379> incrbyfloat age 10.0
"54"
14. decr/decrby
127.0.0.1:6379> decr age
(integer) 53
127.0.0.1:6379> decrby age 10
(integer) 43
15. append 将新串追加到原有字符串后
127.0.0.1:6379> append age 20
(integer) 4
127.0.0.1:6379> get age
"4320"
16. setbit 格式为: setbit key offset value
# 从左往右,从高位至低位进行计数
# 这里的a的ascii码为 0110 0001
# 这里的b的ascii码为 0110 0010
# 这里的c的ascii码为 0110 0011
127.0.0.1:6379> set num a
OK
127.0.0.1:6379> setbit num 6 1
(integer) 0
127.0.0.1:6379> get num
"c"
127.0.0.1:6379> setbit num 7 0
(integer) 1
127.0.0.1:6379> get num
"b"
17. getbit 格式为: getbit key offset
127.0.0.1:6379> getbit num 1
















