Redis 服务器

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 服务器命令

下面列出了 redis 服务器的相关命令:

TIME命令

该命令用来返回当前服务器时间。语法如下:

TIME

实例:

127.0.0.1:6379> time
1) "1677042452"
2) "80156"

注意,time 命令返回一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。

DBSIZE命令

返回当前数据库的 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命令

删除所有现有数据库的所有键,而不仅仅是当前选定的数据库。默认情况下,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

FLUSHDB命令

删除当前数据库的所有 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 命令以易于计算机解析且易于人类读取的格式返回有关服务器的信息和统计信息。语法如下:

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

LASTSAVE命令

返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。语法如下:

LASTSAVE

注意,客户端可以根据 LASTSAVE 命令返回值检查 BGSAVE 命令是否成功(例如,LASTSAVE 命令返回的值距离当前时间超过5分钟,则执行一次 BGSAVE 命令)。

实例:

127.0.0.1:6379> lastsave
(integer) 1677128931

MONITOR命令

该命令是一个调试命令,用于流式传输回 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"
...

SHUTDOWN命令

异步保存数据到硬盘,并关闭服务器。该命令的行为如下:

(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>
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号