redis 服务器管理

Jackey Redis 3,008 次浏览 没有评论

检查连接是否正常

PING

使用客户端向 Redis 服务器发送一个 PING ,如果客户端与服务器之间的连接正常,并且服务器的运作也正常的话,那么命令将返回一个 PONG 。

通常用于测试网络连接和服务器状态,或者用于测量延迟值。

redis> PING

PONG

redis> PING

Could not connect to Redis at 127.0.0.1:6379: Connection refused

看服器信息

INFO [section]

查看 Redis 服务器的各种信息和统计数值。

通过给定可选的 section 参数,可以指定命令要返回的信息内容。

redis> INFO

# Server

redis_version:2.9.11

redis_git_sha1:937384d0

redis_git_dirty:0

redis_build_id:8e9509442863f22

redis_mode:standalone

……

SECTION 参数的

all 所有服务器信息。

default(默认值) 默认被选中的,最常见也最重要的一些服务器信息。

server 服务器本身的信息,比如版本号、 监听端口号、服务器 ID 等等。

clients 已连接客户端的信息,比如已连接客户端的数量、正在被阻塞的客 户端数量等等。

memoery 内存信息,比如内存占用数量、使用的内存分配器等等。

persistence 和 RDB 持久化以及 AOF 持久化有关的信息,比如 RDB 持久化是否正在进行、AOF 文件重写是否正在进行等等。

stats 服务器的统计信息,比如已处理的命令请求数量、每秒钟处理的命令请求数量等等。

replication 和主从复制有关的信息,比如服 务器的角色、主从服务器的连接状态是否正常等等。

cpu 服务器的系统 CPU 占用量和用户 CPU 占用量。

commandstats 命令执行的统计信息,比如命令执行的次数、命令耗费的 CPU 时间、执行每个命令耗费的平均 CPU 时间等等。

cluster 集群功能的相关信息。

keyspace 和数据库键空间有关的信息,比如数据库的键数量、数据库已经被删除的过期键数量等等。

看服器正在行的命令

MONITOR

实时地打印出 Redis 服务器接收到的命令,格式 为“时间戳 [数据库号码 IP地址和端口号] 被执行的命令”。

redis> MONITOR

OK

1378822099.421623 [0 127.0.0.1:56604] "PING"

1378822105.089572 [0 127.0.0.1:56604] "SET" "msg" "hello world"

1378822109.036925 [0 127.0.0.1:56604] "SET" "number" "123"

1378822140.649496 [0 127.0.0.1:56604] "SADD" "fruits" "Apple" "Banana" "Cherry"

1378822154.117160 [0 127.0.0.1:56604] "EXPIRE" "msg" "10086"

1378822257.329412 [0 127.0.0.1:56604] "KEYS" "*"

1378822258.690131 [0 127.0.0.1:56604] "DBSIZE"

记录查询日志

Redis 的慢查询功能用于将执行时间超过指定时长的命令记录起来,并向用户展示那些被记录的命令,方便用户发现运行缓慢的命令,并进行针对性的优化。

慢查询功能可以通过以下两个配置选项来进行设置:

slowlog-log-slower-than <microseconds>

执行时长超过 microseconds 微秒的命令将被记录,将这个值设置为负数表示关闭慢查询功能。默认值为 10000 ,也即是 1/100 秒,因为 1 秒 = 1 百万微秒。

slowlog-max-len <length>

慢查询日志的最大数量,当记录的日志超过这个数量时,新日志会覆盖旧日志( FIFO)。默认值为 128 。

看慢查询日志

SLOWLOG GET [number]

返回服务器目前记录的慢查询日志。

如果给定可选的 number 参数,那么只返回最多 number 条日志;否则的话,返回所有慢查询日志。

# 为测试需要,将 slowlog-log-slower-than 设成了 10 微秒

redis> SLOWLOG GET

1) 1) (integer) 12 # 唯一的日志标识符

2) (integer) 1324097834 # 被记录命令的执行时间,以 UNIX 时间戳格式表示

3) (integer) 16 # 命令执行耗费的时长,以微秒为单位

4) 1) "CONFIG" # 被执行的命令,以数组的形式排列

2) "GET" # 这里完整的命令是 CONFIG GET slowlog-log-slower-than

3) "slowlog-log-slower-than"

查询日志的其他命令

SLOWLOG LEN 查看目前已有的慢查询日志数量。

SLOWLOG RESET 删除所有慢查询日志。

redis> SLOWLOG LEN

(integer) 14

redis> SLOWLOG RESET

OK

redis> SLOWLOG LEN

(integer) 0

器的加与解

通过配置选项 requirepass <password> ,用户可以为服务器设置密码。

当客户端连接一个带密码的服务器时,它必须执行 AUTH <password> 命令来进行解锁,否则这个客户端就不能执行除 AUTH 以外的其他命令。

举个例子,如果我们在服务器启动时,用以下方式给服务器设置了密码:

$ redis-server --requirepass helloworld

那么连接服务器的客户端必须在解锁之后才能执行其他命令:

redis> PING

(error) NOAUTH Authentication required.

redis> AUTH helloworld

OK

redis> PING

PONG

SHUTDOWN [option]

在不给定 option 参数的情况下,服务器会先执行持久化操作:

  • 如果打开了 AOF 持久化,那么调用 fdatasync ,确保之前执行的命令能够被写入到硬盘。
  • 如果打开了 RDB 持久化并且数据库已经发生了变化,那么执行 SAVE 命令。

在以上操作都完成之后,服 务器关闭。

在打开了持久化功能的情况下,使用 SHUTDOWN 命令关闭服务器不会丢失任何数据。

option 选项的值可以是 save 或者 nosave :

  • SHUTDOWN save 在关闭之前总是执行 SAVE 命令,用于在没有开启 RDB 持久化的情况下,创建一个 RDB 文件来保存数据;
  • SHUTDOWN nosave 在关闭之前不执行 SAVE 命令,用于在数据库可能已经出错的情况下,避免将错误的数据保存到 RDB 文件里面。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go