11、CLIENT KILL [ip:port] [ID client-id] [normal|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]
起始版本:2.4.0
时间复杂度:O(N) 遍历所有客户端连接
功能描述:关闭一个制定的连接
接口变化:
.redis2.8.11时可以根据客户端地址关闭指定连接,关闭连接命令为:client kill addr:port
.redis2.8.12开始,这个命令改为CLIENT KILL … …
新的格式可以根据不同属性杀死客户端而不是直接按照地址杀死。格式有如下:
.client kill adddr ip:port 这个和旧版本的三个参数是一致的。
.client kill id client-id 可以通过唯一ID字段杀死一个客户端,唯一ID通过redis2.8.12的client list命令可以查询。
.client kill type type 这里的type可以是normal,slave,pubsub.这将关闭所有特殊类型的客户端,注意被认为是属于正常累的客户端将会被monitor命令监视到。
.client kill skipme yes/no 默认情况下会选yes。使用client kill 的时候会跳过当前连接。也就是让当前连接不会被client kill命令kill掉。no的话相当于关闭,使当前连接可以被client kill命令Kill掉。
12、client list
起始版本:2.4.0
时间复杂度:O(N) n是客户端连接数量
功能:用于获取所有连接到服务器的客户端信息和统计数据。
返回值:
.每个已连接客户端对应一行
.每行字符串有一系列 属性=值 形式的域组成,每个域之间以空格分开。
返回值各个字段的含义:
.id:唯一的64位的客户端ID(redis 2.8.12加入)
.addr:客户端的地址和端口。
.fd:套接字所使用的文件描述符。
.age:一秒几岁的已连接时长。
.idle:以秒几岁的空闲时长。
.flag:客户端flag。
.db:该客户端正在使用的数据库id
.sub:已订阅频道的数量
.psub:已订阅模式的数量
.multi:在失误中被执行的命令数量(后续测试一下)
.qbuf:查询缓存区的长度(字节为单位,0表示没有分配查询缓存区)
.qbug-free:查询缓存区剩余空间的长度(字节为单位,0表示没有剩余空间)
.obl:输出缓存区的长度(字节为单位,0表示没有分配输出缓存区)
.oll:输出列表包含的对象数量(当输出缓存区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)
.omem:输出换成去和输出队列占用的内存总量
.events:文件描述符事件
.cmd:最近一次执行的命令
其中客户端flag可以由一下部分组成:
o:客户端是monitor模式下的附属节点(slave)
s:客户端是一般模式下(normal)的附属节点
m:客户端是主节点(master)
x:客户端正在执行事务
b:客户端正在等待阻塞事件
d:一个受监视(watched)的键已被修改,exec命令将失败。
c:在将回复完整写出之后,关闭连接
u:客户端未被阻塞(unblocked)
U:通过Unix套接字连接看客户端
r:客户端是只读模式的集群节点。
A:尽可能快地关闭连接
N:未设置如何flag
其中文件描述事件可以是:
r:客户端套接字(在事件loop中)是可读的(readable)
w:客户端套接字(在事件loop中)是可写的(writeable)
13、client getname
起始版本:2.6.9
时间复杂度:O(1)
功能:返回当前连接由client setname设置的名字,如果没有设置,将返回一个nil。在实际应用中尽可能为每个连接起个名字,方便后续定位。
14、client setname connection-name
起始版本:2.6.9
事件复杂度:O(1)
功能:为当前连接起个名字。在实际应用中尽可能根据功能为每个连接起个名字,方便维护定位。
返回值:ok表示成功。失败的后续试一下返回值。
15、command
起始版本:2.8.13
时间复杂度:O(N) N为所有当前可以使用看客户端命令个数
功能:返回当前所有可以使用的redis命令
16、command count
起始版本:2.8.13
时间复杂度:O(1)
功能:获取当前redis可用命令的个数。
17、 command info command-name
起始版本:2.8.13
功能:获取具体命令的详细信息。
18、conf get parameter
起始版本:2.0.0
功能:读取redis服务器的配置文件参数,但并不是所有参数都支持。与之对应的命令是config set用来设置服务器配置参数。可以通过config get *来查看所有支持的参数。
例子:
redis> config get *max-*-entries*
1) "hash-max-zipmap-entries"
2) "512"
3) "list-max-ziplist-entries"
4) "512"
5) "set-max-intset-entries"
6) "512"
19、config rewrite
起始版本:2.8.0
功能:对启动 Redis 服务器时所指定的 redis.conf 文件进行改写
重写原则:
原有 redis.conf 文件的整体结构和注释会被尽可能地保留。
如果一个选项已经存在于原有 redis.conf 文件中 , 那么对该选项的重写会在选项原本所在的位置(行号)上进行。
如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为默认值, 那么重写程序不会将这个选项添加到重写后的 redis.conf 文件中。
如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为非默认值, 那么这个选项将被添加到重写后的 redis.conf 文件的末尾。
未使用的行会被留白。 比如说, 如果你在原有 redis.conf 文件上设置了数个关于 save 选项的参数, 但现在你将这些 save 参数的一个或全部都关闭了, 那么这些不再使用的参数原本所在的行就会变成空白的。
即使启动服务器时所指定的 redis.conf 文件已经不再存在, CONFIG REWRITE 命令也可以重新构建并生成出一个新的 redis.conf 文件。
另一方面, 如果启动服务器时没有载入 redis.conf 文件, 那么执行 CONFIG REWRITE 命令将引发一个错误。
对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。
返回值:如果配置重写成功则返回 OK ,失败则返回一个错误。
例子:
127.0.0.1:6379> CONFIG GET appendonly # appendonly 处于关闭状态
1) "appendonly"
2) "no"
127.0.0.1:6379> CONFIG SET appendonly yes # 打开 appendonly
OK
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "yes"
127.0.0.1:6379> CONFIG REWRITE # 将 appendonly 的修改写入到 redis.conf 中
OK
20、config set value
起始版本:2.0.0
功能:动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET * 来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。
返回值:当设置成功时返回 OK ,否则返回一个错误。
例子:
redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "1024"
redis> CONFIG SET slowlog-max-len 2048
OK
redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "2048"