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命令的描述信息
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