1.前言
Redis 服务器是对客户端提供服务的主体,只要是安装了 Redis 数据库的计算机都可以通过本地,或者远程的方式对外提供服务。
Redis 服务器能够以高可用集群的方式对外提供服务。所谓高可用集群,指的是多台 Redis 服务器组成的服务器架构,每台服务器都提供相同的服务,从而让服务器达到一个稳定,高效的运行状态。有关 Redis 集群的相关知识在后续内容中详介绍。
从 3.0 版本开始,Redis 已经实现了对 Redis-cluster 集群部署的支持。
Redis 提供了诸多操作服务器的命令,这些命令都有着各自重要的作用,比如BGSAVE
命令,用异步的方式将 Redis 数据库的数据同步到本地磁盘中,实现数据的持久化存储,这对服务器的数据安全有着重要的作用。
2. 常用服务器命令
下表介绍了 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 数据持久化等。
3. 基本命令演示
下面是对上述的命令做简单的演示,您可以跟着敲一遍命令,从加深对命令的理解与记忆:
#查看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