• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Redis服务端命令介绍

Redis 彭东稳 8年前 (2017-03-09) 27246次浏览 已收录 0个评论

BGREWRITEAOF

执行一个AOF文件重写操作。重写会创建一个当前AOF文件的体积优化版本。即使BGREWRITEAOF执行失败,也不会有任何数据丢失,因为旧的AOF文件在BGREWRITEAOF成功之前不会被修改。

重写操作只会在没有其他持久化工作在后台执行时被触发,也就是说:

如果Redis的子进程正在执行快照的保存工作,那么AOF重写的操作会被预定(scheduled),等到保存工作完成之后再执行AOF重写。在这种情况下, BGREWRITEAOF的返回值仍然是OK ,但还会加上一条额外的信息,说明BGREWRITEAOF要等到保存操作完成之后才能执行。在Redis 2.6或以上的版本,可以使用INFO命令查看BGREWRITEAOF是否被预定。

如果已经有别的AOF文件重写在执行,那么BGREWRITEAOF返回一个错误,并且这个新的BGREWRITEAOF请求也不会被预定到下次执行。从Redis 2.4 开始,AOF重写由Redis自行触发,BGREWRITEAOF仅仅用于手动触发重写操作。

SAVE

SAVE命令执行一个同步保存操作,将当前Redis实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。

一般来说,在生产环境很少执行SAVE操作,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE可以作为保存数据的最后手段来使用。

BGSAVE

在后台异步(Asynchronously)保存当前数据库的数据到磁盘。BGSAVE命令执行之后立即返回OK ,然后Redis fork出一个新子进程,原来的Redis进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

客户端可以通过LASTSAVE命令查看相关信息,判断BGSAVE命令是否执行成功。

CLIENT LIST

以人类可读的格式,返回所有连接到服务器的客户端信息和统计数据。

CLIENT KILL

关闭地址为ip:port的客户端。ip:port应该和CLIENT LIST命令输出的其中一行匹配。因为Redis使用单线程设计,所以当Redis正在执行命令的时候,不会有客户端被断开连接。如果要被断开连接的客户端正在执行命令,那么当这个命令执行之后,在发送下一个命令的时候,它就会收到一个网络错误,告知它自身的连接已被关闭。

CLIENT SETNAME

为当前连接分配一个名字。这个名字会显示在CLIENT LIST命令的结果中,用于识别当前正在与服务器进行连接的客户端。

举个例子, 在使用Redis构建队列(queue)时, 可以根据连接负责的任务(role), 为信息生产者(producer)和信息消费者(consumer)分别设置不同的名字。名字使用Redis的字符串类型来保存, 最大可以占用512 MB 。 另外,为了避免和CLIENT LIST命令的输出格式发生冲突, 名字里不允许使用空格。

要移除一个连接的名字, 可以将连接的名字设为空字符串 “” 。使用CLIENT GETNAME命令可以取出连接的名字。在 Redis应用程序发生连接泄漏时,为连接设置名字是一种很好的debug手段。

CLIENT GETNAME

返回CLIENT SETNAME命令为连接设置的名字。因为新创建的连接默认是没有名字的,对于没有名字的连接,CLIENT GETNAME返回空白回复。

DBSIZE

返回当前数据库的key的数量。

DEBUG OBJECT

DEBUG OBJECT KEY是一个调试命令,它不应被客户端所使用。

DEBUG SEGFAULT

执行一个不合法的内存访问从而让 Redis 崩溃,仅在开发时用于BUG模拟。

FLUSHALL

清空整个Redis服务器的数据(删除所有数据库的所有key )。此命令从不失败。

FLUSHDB

清空当前数据库中的所有key。此命令从不失败。

INFO

以一种易于解释(parse)且易于阅读的格式,返回关于Redis服务器的各种信息和统计数值。

LASTSAVE

返回最近一次Redis成功将数据保存到磁盘上的时间,以UNIX时间戳格式表示。

MONITOR

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

SHUTDOWN

SHUTDOWN命令执行以下操作:

  1. 停止所有客户端
  2. 如果有至少一个保存点在等待,执行SAVE命令
  3. 如果AOF选项被打开,更新AOF文件
  4. 关闭redis服务器(server)

如果持久化被打开的话, SHUTDOWN命令会保证服务器正常关闭而不丢失任何数据。

SLAVEOF

SLAVEOF命令用于在Redis运行时动态地修改复制(replication)功能的行为。通过执行SLAVEOF host port命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。

SLOWLOG

使用SLOWLOG GET或者SLOWLOG GET number命令用来输出Redis慢查询日志的,Slow log是Redis用来记录查询执行时间的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等IO操作,而单单是执行一个查询命令所耗费的时间。

另外,slow log保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启slow log而损害Redis的速度。

SLOWLOG RESET可以清空slow log 。

详情:Redis慢查询日志学习

TIME

返回当前服务器时间。

CONFIG SET

语法:CONFIG SET parameter value,CONFIG SET命令可以动态地调整Redis服务器的配置(configuration)而无须重启。你可以使用它修改配置参数,或者改变Redis的持久化(Persistence)方式。

CONFIG SET可以修改的配置参数可以使用命令CONFIG GET * 来列出,所有被CONFIG SET修改的配置参数都会立即生效。关于CONFIG SET命令的更多消息,请参见命令CONFIG GET的说明。

设置慢查询长度

设置内存使用大小

使用CONFIG SET命令不重启的情况下,从RDB切换到AOF 。

为最新的dump.rdb文件创建一个备份,将备份放到一个安全的地方,执行以下两条命令:

确保命令执行之后,数据库的键的数量没有改变。确保写命令会被正确地追加到AOF文件的末尾。

执行的第一条命令用来设置目录,执行的第二条命令开启了AOF功能: Redis会阻塞直到初始AOF文件创建完成为止,之后Redis会继续处理命令请求,并开始将写入命令追加到AOF 文件末尾。执行的第三条命令用于关闭RDB功能,这一步是可选的,如果你愿意的话,也可以同时使用RDB和AOF这两种持久化功能。

CONFIG GET

CONFIG GET命令用于取得运行中的Redis服务器的配置参数(configuration parameters),在Redis 2.4版本中, 有部分参数没有办法用CONFIG GET访问,但是在最新的Redis 2.6版本中,所有配置参数都已经可以用CONFIG GET访问了。

CONFIG GET接受单个参数parameter作为搜索关键字,查找所有匹配的配置参数,其中参数和值以“键-值对”(key-value pairs)的方式排列。

比如执行CONFIG GET s* 命令,服务器就会返回所有以s开头的配置参数及参数的值:

如果你只是寻找特定的某个参数的话,你当然也可以直接指定参数的名字:

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 计数器的值)

CONFIG REWRITE

CONFIG REWRITE命令对启动Redis服务器时所指定的redis.conf文件进行改写: 因为CONFIG SET命令可以对服务器的当前配置进行修改,而修改后的配置可能和redis.conf文件中所描述的配置不一样,CONFIG REWRITE的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到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命令将引发一个错误。

AUTH

通过设置配置文件中requirepass项的值(使用命令 CONFIG SET requirepass password ),可以使用密码来保护Redis服务器。

如果开启了密码保护的话,在每次连接Redis服务器之后,就要使用AUTH命令解锁,解锁之后才能使用其他Redis命令。如果AUTH命令给定的密码password 和配置文件中的密码相符的话,服务器会返回OK并开始接受命令输入。

ECHO

打印一个特定的信息 message ,测试时使用。

SELECT

切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值。默认使用0号数据库。

 


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!