Redis服务器命令

 
Redis 服务器是对客户端提供服务的主体,只要是安装了 Redis 数据库的计算机都可以通过本地,或者远程的方式对外提供服务。

Redis 服务器能够以高可用集群的方式对外提供服务。所谓高可用集群,指的是多台 Redis 服务器组成的服务器架构,每台服务器都提供相同的服务,从而让服务器达到一个稳定,高效的运行状态。有关 Redis 集群的相关知识在后续内容中详介绍。

从 3.0 版本开始,Redis 已经实现了对 Redis-cluster 集群部署的支持。

Redis 提供了诸多操作服务器的命令,这些命令都有着各自重要的作用,比如BGSAVE命令,用异步的方式将 Redis 数据库的数据同步到本地磁盘中,实现数据的持久化存储,这对服务器的数据安全有着重要的作用。

常用服务器命令

下表介绍了 Redis 服务器的常用命令:

Redis服务器命令
命令 说明
BGREWRITEAOF 在后台以异步的方式执行一个 AOF 文件的重写操作,对源文件进行压缩,使其体积变小。
AOF 是实现数据持久化存储的方式之一。
BGSAVE 在后台执行初始化操作,并以异步的方式将当前数据库的数据保存到磁盘中。
CLIENT KILL [ip:port] [ID client-id] 关闭客户端连接。
CLIENT LIST 获取连接到服务器的客户端连接列表。
CLIENT GETNAME 获取当前连接客户端的名称。
CLIENT PAUSE timeout 使服务器在指定的时间停止执行来自客户端的命令。
CLIENT SETNAME connection-name 设置当前连接客户端的名称。
COMMAND 返回所有 Redis 命令的详细描述信息。
COMMAND COUNT 此命令用于获取 Redis 命令的总数。
COMMAND GETKEYS 获取指定命令的所有键。
INFO [section] 获取 Redis 服务器的各种信息和统计数值。
COMMAND INFO command-name [command-name ...] 用于获取指定 Redis 命令的描述信息。
CONFIG GET parameter 获取指定配置参数的值。
CONFIG REWRITE 修改启动 Redis 服务器时所指定的 redis.conf 配置文件。
CONFIG SET parameter value 修改 Redis 配置参数,无需重启。
CONFIG RESETSTAT 重置 INFO 命令中的某些统计数据。
DBSIZE 返回当前数据库中 key 的数量。
DEBUG OBJECT key 获取 key 的调试信息。当 key 存在时,返回有关信息;当 key 不存在时,返回一个错误。
DEBUG SEGFAULT 使用此命令可以让服务器崩溃。
FLUSHALL 清空数据库中的所有键。
FLUSHDB 清空当前数据库的所有 key。
LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 格式表示。
MONITOR 实时打印出 Redis 服务器接收到的命令。
ROLE 查看主从实例所属的角色,角色包括三种,分别是 master、slave、sentinel。
SAVE 执行数据同步操作,将 Redis 数据库中的所有数据以 RDB 文件的形式保存到磁盘中。
RDB 是 Redis 中的一种数据持久化方式。
SHUTDOWN [NOSAVE] [SAVE] 将数据同步到磁盘后,然后关闭服务器。
SLAVEOF host port 此命令用于设置主从服务器,使当前服务器转变成为指定服务器的从属服务器,
或者将其提升为主服务器(执行 SLAVEOF NO ONE 命令)。
SLOWLOG subcommand [argument] 用来记录查询执行时间的日志系统。
SYNC 用于同步主从服务器。
SWAPDB index index 用于交换同一 Redis 服务器上的两个数据库,可以实现访问其中一个数据库的客户端连接,也可以立即访问另外一个数据库的数据。
TIME 此命令用于返回当前服务器时间。
注意:上述一些命令在后续内容还会做相应介绍,比如 Redis 主从服务器设置,以及 Redis 数据持久化等。

基本命令演示

下面是对上述的命令做简单的演示,您可以跟着敲一遍命令,从加深对命令的理解与记忆:
#查看redis命令的描述信息
127.0.0.1:6379> COMMAND INFO SET GET ZADD
1) 1) "set"
   2) (integer) -3
   3) 1) write
      2) denyoom
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
2) 1) "get"
   2) (integer) 2
   3) 1) readonly
      2) fast
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
3) 1) "zadd"
   2) (integer) -4
   3) 1) write
      2) denyoom
      3) fast
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
#最近一次执行数据持久化存储的时间
127.0.0.1:6379> LASTSAVE
(integer) 1610717455
127.0.0.1:6379> LASTSAVE
(integer) 1610717455
#实时打印redis服务器接收的命令
127.0.0.1:6379> MONITOR
OK
1610951376.523762 [0 127.0.0.1:60257] "COMMAND"
^C
#查看前两条日志信息
127.0.0.1:6379> SLOWLOG get 2
1) 1) (integer) 13
   2) (integer) 1610950258
   3) (integer) 46499
   4) 1) "info"
   5) "127.0.0.1:58561"
   6) ""
2) 1) (integer) 12
   2) (integer) 1610950201
   3) (integer) 19917
   4) 1) "COMMAND"
   5) "127.0.0.1:58561"
   6) ""
#共有多少条日志记录
127.0.0.1:6379> SLOWLOG len
(integer) 14
#清空所有日志记录
127.0.0.1:6379> SLOWLOG reset
OK
127.0.0.1:6379> SLOWLOG len
(integer) 0
#用于同步主从服务器数据
127.0.0.1:6379> SYNC
Entering replica output mode...  (press Ctrl-C to quit)
SYNC with master, discarding 1719 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
^C
C:\Users\Administrator>redis-cli
#查看当前服务器时间
#第一个字符串是当前时间以 UNIX 时间戳格式表示
#第二个字符串表示:当前这一秒钟已经逝去的微秒数
127.0.0.1:6379> TIME
1) "1610953086"
2) "17499"
在线练习工具:https://try.redis.io/
查看更多 Redis 命令:https://redis.io/commands