Redis 服务器命令主要是用于管理 redis 服务。
以下实例演示了如何获取 redis 服务器信息,例如:
127.0.0.1:6379> info server # Server redis_version:5.0.14.1 redis_git_sha1:ec77f72d redis_git_dirty:0 redis_build_id:5627b8177c9289c redis_mode:standalone os:Windows arch_bits:64 multiplexing_api:WinSock_IOCP atomicvar_api:pthread-mutex process_id:9888 run_id:0a856ec30795d1f5c33566cbd81a906bfc677151 tcp_port:6379 uptime_in_seconds:38 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:16011695 executable:d:\server\redis-x64-5.0.14.1\\redis-server.exe config_file:D:\server\redis-x64-5.0.14.1\\redis.windows.conf
下面列出了 redis 服务器的相关命令:
该命令用来返回当前服务器时间。语法如下:
TIME
实例:
127.0.0.1:6379> time 1) "1677042452" 2) "80156"
注意,time 命令返回一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。
返回当前数据库的 key 的数量。语法如下:
DBSIZE
实例:
127.0.0.1:6379> dbsize (integer) 6 127.0.0.1:6379> set newKey 100 OK 127.0.0.1:6379> dbsize (integer) 7
注意,上面结果表示当前数据库中有6个键。
删除所有现有数据库的所有键,而不仅仅是当前选定的数据库。默认情况下,FLUSHALL 将同步刷新所有数据库。从 Redis 6.2 开始,将 lazyfree-lazy-user-flush 配置指令设置为 “yes” 会将默认刷新模式更改为异步。语法如下:
FLUSHALL [ASYNC | SYNC]
其中:
ASYNC: 异步刷新数据库
SYNC: 同步刷新数据库
注: 异步 FLUSHALL 命令仅删除调用该命令时存在的键,在异步刷新期间创建的键将不受影响。
实例:
# 0 号数据库的 key 数量 127.0.0.1:6379> DBSIZE (integer) 9 # 切换到 1 号数据库 127.0.0.1:6379> SELECT 1 OK # 1 号数据库的 key 数量 127.0.0.1:6379> DBSIZE (integer) 6 # 清空所有数据库的所有 key 127.0.0.1:6379> FLUSHALL OK # 不但 1 号数据库被清空了 127.0.0.1:6379> DBSIZE (integer) 0 # 0 号数据库(以及其他所有数据库)也一样 127.0.0.1:6379> SELECT 0 OK 127.0.0.1:6379> DBSIZE (integer) 0
删除当前数据库的所有 key。默认情况下,FLUSHDB 将同步刷新数据库中的所有密钥。从 Redis 6.2开始,将 lazyfree-lazy-user-flush 配置指令设置为 “yes” 会将默认刷新模式更改为异步。语法如下:
FLUSHDB [ASYNC | SYNC]
其中:
ASYNC: 异步刷新数据库
SYNC: 同步刷新数据库
注意:异步 FLUSHDB 命令只删除调用命令时存在的键,异步刷新期间创建的键将不受影响。
实例:
# 查看数据库键数 127.0.0.1:6379> dbsize (integer) 7 # 切换到数据库 1 127.0.0.1:6379> select 1 OK # 查看数据库键数 127.0.0.1:6379[1]> dbsize (integer) 2 # 同步删除数据库 1 中的所有键 127.0.0.1:6379[1]> flushdb OK # 查看数据键个数 127.0.0.1:6379[1]> dbsize (integer) 0 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> dbsize (integer) 7
INFO 命令以易于计算机解析且易于人类读取的格式返回有关服务器的信息和统计信息。语法如下:
INFO [section [section ...]]
其中,section 可选参数的取值如下:
server:有关 Redis 服务器的一般信息
clients:“客户端连接”部分
memory:内存消耗相关信息
persistence:RDB 和 AOF 相关信息
stats:一般统计
replication:主/副本复制信息
cpu:CPU 消耗统计信息
commandstats:Redis 命令统计信息
latencystats:Redis 命令延迟百分位分布统计信息
sentinel:Redis 哨兵部分(仅适用于哨兵实例)
cluster:Redis 集群部分
modules:模块部分
keyspace:数据库相关统计信息
modules:模块相关部分
errorstats:Redis 错误统计信息
它也可以采用以下值:
all:返回所有部分(不包括模块生成的部分)
default:仅返回默认的节集
everything:包括全部和模块
如果未提供参数,则采用 default 选项。
实例:
127.0.0.1:6379> info cpu # CPU used_cpu_sys:0.156250 used_cpu_user:0.140625 used_cpu_sys_children:0.000000 used_cpu_user_children:0.000000
返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。语法如下:
LASTSAVE
注意,客户端可以根据 LASTSAVE 命令返回值检查 BGSAVE 命令是否成功(例如,LASTSAVE 命令返回的值距离当前时间超过5分钟,则执行一次 BGSAVE 命令)。
实例:
127.0.0.1:6379> lastsave (integer) 1677128931
该命令是一个调试命令,用于流式传输回 Redis 服务器处理的每个命令。它可以帮助了解数据库正在发生的情况。此命令既可以通过 redis-cli 使用,也可以通过 telnet 使用。语法如下:
MONITOR
注意,查看 Redis 服务器处理的所有请求的能力非常有用,以便在使用 Redis 作为数据库和分布式缓存系统时发现应用程序中的错误。
实例:
127.0.0.1:6379> monitor OK 1677129467.399540 [0 127.0.0.1:23251] "COMMAND" 1677129480.187597 [0 127.0.0.1:23251] "set" "email" "hxstrive@outlook.com" ...
异步保存数据到硬盘,并关闭服务器。该命令的行为如下:
(1)如果有任何复制副本在复制中落后:
(a)通过使用 write(写入)选项执行 CLIENT Pause(客户端暂停),暂停尝试写入的客户端。
(b)等待到配置的关闭超时(默认值为10秒),以便复制副本赶上复制偏移量。
(2)停止所有客户端。
(3)如果至少配置了一个保存点,则执行阻塞 SAVE。
(4)如果启用了AOF,则刷新 “仅附加文件”。
(5)退出服务器。
如果启用了持久性,该命令将确保关闭 Redis 而不会丢失任何数据。
注意:配置为不保留在磁盘上的 Redis 实例(未配置 AOF 或 “SAVE” 指令)不会在 SHUTDOWN 时转储 RDB 文件,因为通常您不希望仅用于缓存的 Redis 实例在关闭时阻塞。
语法如下:
SHUTDOWN [NOSAVE | SAVE] [NOW] [FORCE] [ABORT]
其中,可选参数含义如下:
SAVE:即使未配置保存点,也会强制执行数据库保存操作。
NOSAVE:即使配置了一个或多个保存点,也会阻止数据库保存操作。
NOW:跳过等待滞后副本,即它绕过关闭序列的第一步。
FORCE:忽略任何通常会阻止服务器退出的错误。
ABORT:取消正在进行的关机,不能与其他标志结合使用。
实例:
127.0.0.1:6379> shutdown nosave not connected>