服务器管理
命令与工具
检查连接是否正常
PING命令
使用客户端向 Redis 服务器发送一个 PING ,如果客户端与服务器之间的连接正常,并且服务器的运作也正常的话,那么命令将返回一个 PONG 。通常用于测试网络连接和服务器状态,或者用于测量延迟值。
redis> PING
PONG
redis> PING
Could not connect to Redis at 127.0.0.1:6379: Connection refused
查看服务器信息
INFO命令
INFO [section]
查看 Redis 服务器的各种信息和统计数值。通过给定可选的 section 参数,可以指定命令要返回的信息内容。
redis> INFO
SECTION 参数的值
值 | 展示的信息 |
---|---|
all | 所有服务器信息。 |
default(默认值) | 默认被选中的,最常见也最重要的一些服务器信息。 |
server | 服务器本身的信息,比如版本号、监听端口号、服务器 ID 等等。 |
clients | 已连接客户端的信息,比如已连接客户端的数量、正在被阻塞的客户端数量等等。 |
memoery | 内存信息,比如内存占用数量、使用的内存分配器等等。 |
persistence | 和 RDB 持久化以及 AOF 持久化有关的信息,比如 RDB 持久化是否正在进行、AOF 文件重写是否正在进行等等。 |
stats | 服务器的统计信息,比如已处理的命令请求数量、每秒钟处理的命令请求数量等等。 |
replication | 和主从复制有关的信息,比如服务器的角色、主从服务器的连接状态是否正常等等。 |
cpu | 服务器的系统 CPU 占用量和用户 CPU 占用量。 |
commandstats | 命令执行的统计信息,比如命令执行的次数、命令耗费的 CPU 时间、执行每个命令耗费的平均 CPU 时间等等。 |
cluster | 集群功能的相关信息。 |
keyspace | 和数据库键空间有关的信息,比如数据库的键数量、数据库已经被删除的过期键数量等等。 |
查看服务器正在执行的命令
MONITOR 命令
MONITOR
实时地打印出 Redis 服务器接收到的命令,格式为“时间戳 [数据库号码 IP地址和端口号] 被执行的命令”。
redis> MONITOR
发现执行缓慢的命令
慢查询功能
Redis 的慢查询功能用于将执行时间超过指定时长的命令记录起来,并向用户展示那些被记录的命令,方便用户发现运行缓慢的命令,并进行针对性的优化。
慢查询功能可以通过以下两个配置选项来进行设置:
slowlog-log-slower-than [microseconds]
执行时长超过 microseconds 微秒的命令将被记录,将这个值设置为负数表示关闭慢查询功能。默认值为 10000 ,也即是 1/100 秒,因为 1 秒 = 1 百万微秒。
slowlog-max-len [length]
慢查询日志的最大数量,当记录的日志超过这个数量时,新日志会覆盖旧日志( FIFO)。默认值为 128 。
SLOWLOG GET [number]
返回服务器目前记录的慢查询日志。如果给定可选的 number 参数,那么只返回最多 number 条日志;否则的话,返回所有慢查询日志。
服务器的加锁与解锁
requirepass 选项和 AUTH 命令
通过配置选项 requirepass [password] ,用户可以为服务器设置密码。
当客户端连接一个带密码的服务器时,它必须执行 AUTH 命令来进行解锁,否则这个客户端就不能执行除 AUTH 以外的其他命令。
举个例子,如果我们在服务器启动时,用以下方式给服务器设置了密码:
$ redis-server --requirepass helloworld
关闭服务器
shutdown 命令
SHUTDOWN [option]
在不给定 option 参数的情况下,服务器会先执行持久化操作:
- 如果打开了 AOF 持久化,那么调用 fdatasync ,确保之前执行的命令能够被写入到硬盘。
- 如果打开了 RDB 持久化并且数据库已经发生了变化,那么执行 SAVE 命令。在以上操作都完成之后,服务器关闭。
在打开了持久化功能的情况下,使用 SHUTDOWN 命令关闭服务器不会丢失任何数据。
option 选项的值可以是 save 或者 nosave :
- SHUTDOWN save 在关闭之前总是执行 SAVE 命令,用于在没有开启 RDB 持久化的情况下,创建一个 RDB 文件来保存数据;
- SHUTDOWN nosave 在关闭之前不执行 SAVE 命令,用于在数据库可能已经出错的情况下,避免将错误的数据保存到 RDB 文件里面。
现成的 Redis 管理工具
RedisLive、Redis-Commander 和 RedMon
RedisLive
使用 Python 编写的 Redis 实时监视工具
安装方法和使用说明:
http://www.nkrode.com/article/real-time-dashboard-for-redis
Redis Commander
Node.js 编写的 Redis 管理工具
目前只支持添加字符串、列表、集合和有序集合,不支持添加散列和 HyperLogLog 。
安装和使用简介:
http://joeferner.github.io/redis-commander/
启动之后访问 http://localhost:8081/ 就可以看见界面。
Redmon
Ruby 编写的 Redis 管理工具
现有工具的缺点:
- 不够强大
- 不够稳定
目前还没有强大并且稳定的工具被开源出来。重度使用 Redis 的公司一般都会自己构建管理工具。