Redis学习手册二:服务器管理

一、概述

Redis在设计之初就被定义为长时间不间断运行的服务进程,因此大多数系统配置参数都可以在不重新启动进程的情况下立即生效。即便是将当前的持久化模式从AOF切换到RDB也无需重启。

在Redis中,提供了一组和服务器管理相关的命令,其中就包含和参数设置有关的CONFIG SET/GET command。

二、相关命令列表

命令格式命令描述返回值
INFO [section]

获取Redis服务器运行状态相关统计信息,section相关参数包含如下:

1、server:显示Redis服务器信息,包含redis_version、os、arch_bits、gcc_versi on、process_id、tcp_port、uptime_in_seconds等

2、clients:显示已连接客户端信息,包含有connected_clients、client_longest_o utput_list、client_longest_input_buf、blocked_clients等

3、memory:显示内存统计信息,包含有used_memory、used_memory_human、used_memory_ rss、used_memory_peak、used_memory_peak_human、used_memory_lua、mem_ fragmentation_ratio、mem_allocator等

4、persistent:显示RDB和AOF相关统计信息

5、stats:显示一般统计信息

6、replication:显示主从复制信息

7、cpu:显示cpu计算量统计信息

8、commandstats:显示redis命令统计信息

9、cluster:显示集群相关统计信息

10、keyspace:显示数据库相关统计信息

11、all:显示所有的Redis统计信息

12、default:显示默认选择的统计信息

示例如:info all;info replication


FLUSHALL清空Redis所有数据库中的所有keyOK
FLUSHDB清空当前数据库中的所有keyOK
DBSIZE返回当前数据库的key的数量

SLAVEOF host

port

该命令用于在Redis 运行时动态地修改复制(replication)功能的行为。如果一个Redis服务器已经处于SLAVE状态,SLAVEOF NO ONE命令将关闭当前服务器的被复制状态,与此同时将该服务器切换到MASTER状态。该命令的参数将指定MASTER服务器的监听IP和端口。还有一种情况是,当前服务器已经是另外一台MASTER的SLAVE了,在执行该命令后,当前服务器将终止和之前MASTER之间的复制关系,而将成为新MASTER的SLAVE,之前MASTER中的数据也将被清空,改为新MASTER中的数据。然而如果在当前SLAVE服务器上执行的SLAVEOF NO ONE命令,那么该服务器只是中断与当前MASTER的复制关系,并升级为独立的MASTER,其中的数据也不会被清空

示例:SLAVEOF 10.23.16.226 6579SLAVEOF NO ONE

OK
CONFIG GET parameter

该命令用于获取Redis服务器的运行配置参数。在2.4版本中,该命令有部分参数无法获取,但是在2.6版本以后所有参数都可以获取。该命令接受glob风格的模式匹配规则,因此如果参数中包含模式元字符,那么所有匹配的参数都将以key/value方式被列出。如果参数是*,那么该命令支持的所有参数都将被列出。最后需要指出的是,和redis.conf中不同的是,在命令中不能使用数量缩写格式,如GB、KB等,只能使用表示字节数量的整数值

示例:CONFIG GET s* -- 服务器就会返回所有以 s 开头的配置参数及参数的值


CONFIG SET

parameter value

该命令可以动态地调整 Redis 服务器的配置而无须重启。有些Redis版本可能存在有些参数不能修改,如果需要获悉该命令支持哪些参数,可以查看CONFIG GET * 命令的执行结果。如果想在一个命令中设置多个同类型参数,如redis.conf配置文件中的save参数:save 900 1/save 300 10。在该命令中我们可以将多个key/value用双引号括起,并用空格符隔开,如:config set save "900 1 300 10"

正常返回OK

否则报错

CONFIG

RESETSTAT

重置INFO命令中的某些统计数据,包含有:

  • Keyspace hits (键空间命中次数)

  • Keyspace misses (键空间不命中次数)

  • Number of commands processed (执行命令的次数)

  • Number of connections received (连接服务器的次数)

  • Number of expired keys (过期key的数量)

  • Number of rejected connections (被拒绝的连接数量)

  • Latest fork(2) time(最后执行 fork(2) 的时间)

  • The aof_delayed_fsync counter(aof_delayed_fsync 计数器的值)

OK
SAVE
执行一次同步保存操作,将当前Redis实例的所有数据快照以RDB文件形式保存到硬盘。注意:一般情况下不要执行SAVE命令,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE命令异步执行。但是当保存数据的后台进程不幸出现问题时,SAVE可以作为保存数据的最后手段来使用。
OK
LASTSAVE返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示一个UNIX时间戳

SHUTDOWN

[SAVE|NOSAVE]

SHUTDOWN命令执行以下操作

  • 停止所有客户端

  • 如果有至少一个保存点在等待,执行 SAVE 命令

  • 如果 AOF 选项被打开,更新 AOF 文件

  • 关闭 redis 服务器(server)

修饰词SAVE、NOSAVE:

  • SHUTDOWN SAVE强制让数据库执行保存操作,即使没有设定保存点

  • SHUTDOWN NOSAVE阻止数据库执行保存操作,即使已经设定一个或多个保存点

失败返回错误信息;

正常无任何信息反馈

TIME

返回当前服务器时间,示例:

redis > time

1) "1332395997" #当前时间(以 UNIX 时间戳格式表示)

2) "952581" #当前这一秒钟已经逝去的微秒数


MONITOR实时打印出Redis服务器接收到的命令,调试用

OK

SLOWLOG

Slow log是Redis用来记录查询执行时间的日志系统(执行时间是指不包括像客户端响应(talking)、发送回复等IO操作,而单单是执行一个查询命令所耗费的时间);Slow log的行为由两个配置参数指定,可以通过改写redis.conf或者用CONFIG GET和 CONFIG SET命令对它们动态地进行查看修改:

  • slowlog-log-slower-than:它决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录

  • slowlog-max-len:它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推

以下为SLOWLOG的一些命令示例:

  • CONFIG SET slowlog-log-slower-than1000 #设置slow时间

  • CONFIG SET slowlog-max-len1000 #设置slow日志条数

  • SLOWLOG GET #获取slow日志详细信息

  • SLOWLOG LEN #获取slow日志数量

  • SLOWLOG RESET #清空slow日志



ps:暂时整理到这里,后续持续更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章