常用的 redis 字符串命令:
1、set key value
设置指定 key 的值
127.0.0.1:6379> set k1 gongj
2、get key
获取指定 key 的值
127.0.0.1:6379> get k1
"gongj"
3、getrange key start end
返回 key 中字符串值的子字符。其中,-1表示最后一个字符串,-2表示倒数第二个字符串
127.0.0.1:6379> get k1
"gongjtt"
127.0.0.1:6379> getrange k1 0 3
"gong"
127.0.0.1:6379> getrange k1 1 -1
"ongjtt"
4、append key value
如果 key 已经存在并且是一个字符串, append 命令将指定的 value 追加到该 key 原来值(value)的末尾
127.0.0.1:6379> append k1 tt
(integer) 7
127.0.0.1:6379> get k1
"gongjtt"
127.0.0.1:6379> append k2 yuanj
(integer) 5
127.0.0.1:6379> get k2
"yuanj"
5、decr key
将 key 中储存的数字值减一,如果value不是数字,会报错。如果key不存在,则会给一个默认值为0,在默认值的基础上减一。
#k3不存在
127.0.0.1:6379> decr k3
(integer) -1
6、decrby key decrement
key 所储存的值减去给定的减量值(decrement)
127.0.0.1:6379> decrby k4 5
(integer) -5
7、getset key value
将给定 key 的值设为 value ,并返回 key 的旧值
127.0.0.1:6379> getset k2 100
"yuanj"
127.0.0.1:6379> get k2
"100"
8、incr key
将 key 中储存的数字值增一
127.0.0.1:6379> incr k2
(integer) 101
127.0.0.1:6379> incr k2
(integer) 102
9、incrby key increment
将 key 所储存的值加上给定的增量值(increment)
127.0.0.1:6379> incrby k2 10
(integer) 112
127.0.0.1:6379> incrby k2 10
(integer) 122
10、incrbyfloat key increment
将 key 所储存的值加上给定的浮点增量值(increment)
127.0.0.1:6379> incrbyfloat k2 1.22
"123.22"
11、mget key1 [key2..]
获取一个或多个给定 key 的值。
127.0.0.1:6379> mget k1 k2 k3
1) "gongjtt"
2) "123.22"
3) "-1"
12、mset key value [key value ...]
同时设置一个或多个 key-value 对。
127.0.0.1:6379> mset k4 ggg k5 yyyy
OK
127.0.0.1:6379> keys *
1) "k4"
2) "k1"
3) "k2"
4) "k3"
5) "k5"
127.0.0.1:6379>
14、ttl key
查看key的过期时间,-1代表不会过期。-2代表已经过期
127.0.0.1:6379> ttl k1
(integer) -1
13、setex key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)
127.0.0.1:6379> setex k6 10 gongjyuanj
OK
127.0.0.1:6379> ttl k6
(integer) 7
127.0.0.1:6379> ttl k6
(integer) -2
127.0.0.1:6379> get k6
(nil)
14、psetex key millisecond value
与setex类似,只不过这里的时间单位是毫秒
127.0.0.1:6379> psetex k7 10000 sssssssss
OK
127.0.0.1:6379> ttl k7
(integer) 6
127.0.0.1:6379> ttl k7
(integer) 1
127.0.0.1:6379> get k7
(nil)
15、SETNX key value
只有在 key 不存在时设置 key 的值
set会覆盖之前的值
127.0.0.1:6379> get k1
"gongjtt"
127.0.0.1:6379> set k1 dddd
OK
127.0.0.1:6379> get k1
"dddd"
127.0.0.1:6379> setnx k1 yyy
(integer) 0
127.0.0.1:6379> get k1
"dddd"
127.0.0.1:6379> setnx k8 bbbbsa
(integer) 1 #1设置成功
127.0.0.1:6379> get k8
"bbbbsa"
16、msetnx key value [key value]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在才设置成功
127.0.0.1:6379> msetnx k8 eeeeeeeeee k9 oooooooooo
(integer) 0 # 0 代表失败
127.0.0.1:6379> get k8
"bbbbsa"
127.0.0.1:6379> get k9
(nil)
##################失败,由于k8已经存在
127.0.0.1:6379> msetnx k9 3333333333 k10 111111111111
(integer) 1 #1代表成功
127.0.0.1:6379> get k9
"3333333333"
127.0.0.1:6379> get k10
"111111111111"
17、setrange key offset value
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。当给定的offset大于字符长度,多余的会补0
127.0.0.1:6379> get k1
"dddd"
127.0.0.1:6379> setrange k1 0 go
(integer) 4 #4为长度
127.0.0.1:6379> get k1
"godd"
127.0.0.1:6379> setrange k1 5 yuanj
(integer) 10
127.0.0.1:6379> get k1
"godd\x00yuanj"
18、strlen key
返回 key 所储存的字符串值的长度。
127.0.0.1:6379> set k12 **@@e%%%$$
OK
127.0.0.1:6379> strlen k12
(integer) 10
BIT命令
在 Redis 中,字符串都是以二进制的方式来存储的。例如 set k13 a,a 对应的 ASCII 码是 97,97 转为二进制是 01100001,BIT 相关的命令就是对二级制进行操作的。
第八位 | 第七位 | 第六位 | 第五位 | 第四位 | 第三位 | 第二位 | 第一位 |
---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
0 | 64 | 32 | 0 | 0 | 0 | 0 | 1 |
左移就是*2。
getbit key offset
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
127.0.0.1:6379> set k13 a
OK
127.0.0.1:6379> get k13
"a"
127.0.0.1:6379> getbit k13 0
(integer) 0
127.0.0.1:6379> getbit k13 1
(integer) 1
127.0.0.1:6379> getbit k13 2
(integer) 1
127.0.0.1:6379> getbit k13 3
(integer) 0
127.0.0.1:6379> getbit k13 4
(integer) 0
127.0.0.1:6379> getbit k13 5
(integer) 0
127.0.0.1:6379> getbit k13 6
(integer) 0
127.0.0.1:6379> getbit k13 7
(integer) 1
setbit key offset value
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
127.0.0.1:6379> setbit k13 7 0
(integer) 1
127.0.0.1:6379> setbit k13 6 1
(integer) 0
127.0.0.1:6379> get k13
"b"
将第七位设置为0,第六位设置为1。也就变为了01100010
bitcount
127.0.0.1:6379> bitcount k13
(integer) 3
127.0.0.1:6379> set k13 adb
OK
127.0.0.1:6379> bitcount k13 0 3
(integer) 9
127.0.0.1:6379>
0 3是指adb三个字符串。
以上所以只是均来自于大佬江南一点雨
。
个人博客:http://www.javaboy.org/
网友评论