Redis 服务器命令主要是用于管理 redis 服务。
一般 Redis 服务器信息,包含以下域:
server :
clients : 已连接客户端信息,包含以下域:
memory : 内存信息,包含以下域:
在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。
当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。
查看 used_memory_peak 的值可以验证这种情况是否发生。
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息
1、BGREWRITEAOF ----异步执行一个AOF(append only file)文件重写操作
如果 Bgrewriteaof 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 Bgrewriteaof 成功之前不会被修改。
从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。
2、BGSAVE ---将数据集异步保存到磁盘
Redis父进程继续服务客户,子进程在磁盘上节省数据库,然后退出。客户端检查LASTSAVE命令是否操作成功。
3、CLIENT KILL [ip:port] [ID client_id] ----关闭客户端链接
成功关闭时,返回 OK
4、CLIENT LIST ----返回所有连接到服务器的客户端信息和统计数据
命令返回多行字符串,这些字符串按以下形式被格式化:
以下是域的含义:
客户端 flag 可以由以下部分组成:
文件描述符事件可以是:
用于返回 CLIENT SETNAME 命令为连接设置的名字。因为新创建的连接默认是没有名字的, 对于没有名字的连接, CLIENT GETNAME 返回空白回复。
6、CLIENT PAUSE timeout----指定时间内停止处理来自客户端的命令
返回 OK。如果 timeout 参数是非法的返回错误。
7、CLIENT SETNAME connection_name -----设置当前连接的名称
8、CLUSTER SLOTS -----获取集群节点的映射数组
返回IP/端口嵌套的列表数组。
9、COMMAND ----获取redis命令详情数组
返回嵌套的Redis命令的详细信息列表。列表顺序是随机的。
10、COMMAND COUNT ----获取Redis命令总数
11、COMMAND GETKEYS ----获取所有的key
redis 127.0.0.1:6379> COMMAND GETKEYS MSET a b c d e f 1) "a" 2) "c" 3) "e"12、TIME ----返回当前服务器时间
返回一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。
13、COMMAND INFO command_name [command_name ....] -----获取指定redis命令描述的数组
redis 127.0.0.1:6379> COMMAND INFO get set eval14、CONFIG GET paraeter ----获取指定配置参数的值
15、CONFIG REWRITE ----对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写
CONFIG SET 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样,
CONFIG REWRITE 的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。
16、CONFIG SET parameter value ----修改redis配置参数,无需重启。
17、CONFIG RESETSTAT -----重置 INFO 命令中的某些统计数据
INFO 命令中的某些统计数据,包括:
18、DBSIZE ----返回当前数据库的key的数量
19、DEBUG OBJECT key ---- 获取key的调试信息
当 key 存在时,返回有关信息。当 key 不存在时,返回一个错误。
20、DEBUG SEGFAULT ----让redis服务崩溃
执行一个非法的内存访问从而让 Redis 崩溃,仅在开发时用于 BUG 调试。
21、FLUSHALL ----删除所有数据库的所有key
22、FLUSHDB ----删除当前数据库的所有key
23、INFO [section] ----获取服务器的各种信息和统计数值
通过给定可选的参数 section ,可以让命令只返回某一部分的信息
25、MONITOR -----实时打印出 Redis 服务器接收到的命令,调试用
26、ROLE ----返回主从实例所属的角色,角色有master, slave, sentinel。
返回一个数组:第一个参数是 master, slave, sentinel 三个中的一个。
27、SAVE ----将数据同步保存到磁盘。
执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。
28、SHUTDOWN [NOSAVE] [SAVE] -----将数据集同步保存到磁盘,然后关闭服务器
Shutdown 命令执行以下操作:
29、SLAVEOF host port ----使服务器成为另一个实例的从属,或将其提升作为主服务器
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
另外,对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
30、SLOWLOG subcommand[argument ]----- 管理 redis 的慢日志查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。
31、SYNC ---- 用于复制功能(replication)的内部命令,用于同步主从服务器。