共计 4008 个字符,预计需要花费 11 分钟才能阅读完成。
一、连接命令
ping
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
如果连接正常就返回一个 PONG,否则返回一个连接错误。
ping | |
PONG |
echo m
打印一个特定的信息 m,测试时使用。
'hello world' | echo|
"hello world" |
select i
切换到指定的数据库,数据库索引号 i 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。
1 | select|
OK | |
案例:
在 0 号数据库中设置键 a 为‘hello world’,在 1 号数据库中调用
'hello world' | set a|
OK | |
1 | select|
OK | |
get a | |
(nil) |
auth pword
开启了密码保护,在每次连接 Redis 服务器之后,就要使用 auth 命令解锁,解锁之后才能使用其他 Redis 命令。密码匹配时返回 OK
,否则返回一个错误。
设置密码
config set requirepass redis123456 | |
OK #requirepass 的值就是密码 | |
quit |
在次登录
[root@localhost redis]# ./src/redis-cli | |
ping | |
(error) NOAUTH Authentication required. | |
auth redis123456 | |
OK | |
ping | |
PONG |
清空密码
#requirepass 的值就是密码 | config set requirepass“”OK|
quit |
quit
请求服务器关闭与当前客户端的连接。总是返回 OK
(但是不会被打印显示,因为当时 Redis-cli 已经退出)。
quit | |
[root@localhost redis]# |
二、键命令
set key value
将字符串值 value 关联到 key。
1 # 传入的都是字符串 | set key1|
OK |
get key
返回 key 所关联的字符串值。如果 key 不存在那么返回特殊值 nil。
get key1 | |
"1" |
del key1 [key2 … keyn]
删除给定的一个或多个 key。没有的 key 忽略,返回被删除 key 的数量。
del key1 | |
(integer) 1 |
案例:
声明 key1,key2,key3,删除 key1,key2,key4
1 | set key1|
OK | |
1 | set key2|
OK | |
1 | set key3|
OK | |
del key1 key2 key4 | |
(integer) 2 |
exists key
检查给定 key 是否存在。若 key 存在,返回 1,否则返回 0。
exists key3 | |
(integer) 1 |
type key
返回 key 所储存的值的类型。none (key 不存在)、string (字符串)、list (列表)、set (集合)、zset (有序集)、hash (哈希表)
127.0.0.1:6379> type key1 | |
string |
expire key seconds
为给定 key 设置生存时间,以秒为单位,当 key 过期时(生存时间为 0),它会被自动删除。设置成功返回 1。其他为 0。
30 | expire key3|
(integer) 1 | |
# 查看有效时间 | ttl key3|
(integer) 24 | |
# 验证是否存在 | exists key3|
(integer) 0 |
pexpire key mseconds
这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位。设置成功,返回 1。key 不存在或设置失败,返回 0
set key1 abc | |
OK | |
10000 | pexpire key1|
(integer) 1 | |
ttl key1 | |
(integer) 5 | |
pttl key1 | |
(integer) 746 |
persist key
移除给定 key 的生存时间,将这个 key 从易失的转换成持久的。当生存时间移除成功时,返回 1 . 如果 key 不存在或 key 没有设置生存时间,返回 0。
1 | set zhangwu|
OK | |
persist zhangwu | |
(integer) 0 | |
30 | expire zhangwu|
(integer) 1 | |
persist zhangwu | |
(integer) 1 | |
ttl zhangwu | |
(integer) -1 |
ttl key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。当 key 不存在时,返回 -2。当 key 存在但没有设置剩余生存时间时,返回 -1。
set key1 helloworld | |
OK | |
ttl key1 | |
(integer) -1 | |
50 | expire key1|
(integer) 1 | |
ttl key1 | |
(integer) 44 | |
ttl key1 | |
(integer) -2 |
pttl key
这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 TTL 命令那样,以秒为单位。当 key 不存在时,返回 -2。当 key 存在但没有设置剩余生存时间时,返回 -1。
pttl key1 | |
(integer) -2 | |
set key1 abc | |
OK | |
30000 | pexpire key1|
(integer) 1 | |
pttl key1 | |
(integer) 27345 |
keys pattern
查找所有符合给定模式 pattern 的 key。符合给定模式的 key 列表。
通配符
* 表示多个字符 | |
? 表示一个字符 | |
[] 表示只能是 [] 里面的字符 | |
\ 表示指定特殊字符 |
1 zhangsi 2 zhangwu 3 | mset zhangsan|
OK | |
keys * | |
1) "zhangwu" | |
2) "zhangsan" | |
3) "zhangsi" | |
keys ng* | |
(empty list or set) | |
keys *ng* | |
1) "zhangwu" | |
2) "zhangsan" | |
3) "zhangsi" | |
keys zhang?? | |
1) "zhangwu" | |
2) "zhangsi" | |
keys zha[ng]si | |
(empty list or set) | |
keys zhan[ng]si | |
1) "zhangsi" |
move key db
将当前数据库的 key 移动到给定的数据库 db 当中。移动成功返回 1,失败则返回 0。
keys * | |
1) "zhangwu" | |
2) "zhangsan" | |
3) "zhangsi" | |
1 | select|
OK | |
keys * | |
(empty list or set) | |
0 | select|
OK | |
1 | move zhangsan|
(integer) 1 | |
1 | select|
OK | |
keys * | |
1) "zhangsan" | |
0 | select|
OK | |
keys * | |
1) "zhangwu" | |
2) "zhangsi" |
注意:
key 不存在时,移动失败
key 移动到 1 库时,1 库中出现同名的 key,移动失败
random key
从当前数据库中随机返回 (不删除) 一个 key。当数据库不为空时,返回一个 key。当数据库为空时,返回 nil。
randomkey | |
"zhangwu" | |
randomkey | |
"key" | |
randomkey | |
"key" | |
randomkey | |
"zhangwu" |
rename key newkey
将 key 改名为 newkey。改名成功时提示 OK,失败时候返回一个错误。
rename key key1 | |
OK | |
keys * | |
1) "key1" | |
2) "zhangwu" | |
3) "zhangsi" |
注意:
当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时,RENAME 命令将覆盖旧值。
renamenx key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey。修改成功时,返回 1。如果 newkey 已经存在,返回 0。
renamenx zhangsi zhangwu | |
(integer) 0 | |
renamenx zhangsi zhangsan | |
(integer) 1 | |
keys * | |
1) "zhangsan" | |
2) "key1" | |
3) "zhangwu" |
