跳转至

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 命令。
  • 下标参数 startstop 都以 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常用命令

回到页面顶部