redis 常用命令
2015-10-13 by dongnan
举个栗子
当前库 key 数量
dbsize
:108
还可以使用 keys
keys *
*108
$23
virdata_zh_collect_xxx
#...省略
$23
virdata_zh_collect_xxx
监控服务器
monitor
+OK
+1444733757.120430 [0 10.0.100.12:33654] "GET" "virdata_zh_collect_xxx"
....省略
服务器健康状态
ping
+PONG
赋值&取值
set name dongnan
+OK
get name
"dongnan"
查看key的类型
type name
+string
zrange
示例
127.0.0.1:6379> zrange review 0 -1
1) "180******60"
2) "132******83"
3) "181******09"
4) "186******31"
功能
- 返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。
- 具有相同 score 值的成员按字典序(lexicographical order )来排列。
- 如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。
- 下标参数
start
和stop
都以0
为底,以0
表示有序集第一个成员,以1
表示有序集第二个成员,以此类推。 - 也可以使用负数下标,以
-1
表示最后一个成员,-2
表示倒数第二个成员,以此类推。
zadd
示例
127.0.0.1:6379> zadd whitelist_set 1 189XXXXXX92
(integer) 1
127.0.0.1:6379> zrange whitelist_set 0 -1
1) 185XXXXX997
2) "1"
语法
ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN
功能
- 该命令添加指定的成员到key对应的有序集合中,每个成员都有一个分数。你可以指定多个分数/成员组合。
- 如果一个指定的成员已经在对应的有序集合中了,那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。
- 如果key不存在,就会创建一个含有这些成员的有序集合,就好像往一个空的集合中添加一样。
- 如果key存在,但是它并不是一个有序集合,那么就返回一个错误。
zrem
示例
127.0.0.1:6379> zrem reject_set 130XXXXXX74
(integer) 1
127.0.0.1:6379> zrem reject_set 177XXXXXX69
(integer) 1
功能
从key对应的有序集合中删除给定的成员
ttl
示例:key 过期时间
key的值
get request_e215e801-577482f4b903
$4
1057
key的类型
type request_e215e801-577482f4b903
+string
key 的剩余过期时间
ttl request_e215e801-577482f4b903
:-1
expire 用于设置 key 的过期时间
# 10秒
expire request_e215e801-577482f4b903 10
:1
再次检查过期时间
# 未过期
ttl request_e215e801-577482f4b903
:8
# 已过期
ttl request_e215e801-577482f4b903
:-2
功能
Redis TTL 命令以秒为单位返回 key 的剩余过期时间。
语法
TTL KEY_NAME
返回值
- 当 key 不存在时,返回 -2。
- 当 key 存在但没有设置剩余生存时间时,返回 -1。
- 否则,以毫秒为单位,返回 key 的剩余生存时间。
redis-cli
redis-cli 是 redis 命令行下的接口工具,用于与redis 服务交互,执行命令等。
连接操作相关的命令
quit:关闭连接(connection)
auth:简单密码认证
持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
远程服务控制
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器
对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个key
rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
登录
使用redis-cli最常用的几个参数如下:
-h <hostname> Server hostname (default: 127.0.0.1).
-p <port> Server port (default: 6379).
-a <password> Password to use when connecting to the server.
比如连接本地 redis:
redis-cli -h 127.0.0.1 -p 6379 -a 12345
如果没有 redis-cli,还可以用 telnet,连接方式为:
telnet <hostname> <port>
连接成功后,如果redis设置了密码,则还需要密码认证,这个时候其实已经和redis建立了通信,使用redis命令auth认证即可:
auth <password>
redis-cli 使用通配符删除匹配的 key
# 当前 key 数量
redis-cli dbsize
(integer) 256238
# 删除匹配的 key
redis-cli keys "Chart*" | xargs redis-cli del
# 验证
redis-cli dbsize
(integer) 45
参考
redis如何查看所有的key redis入门——redis常用命令