【Redis服务器操作】
1、TIME
返回当前服务器时间。
2、DBSIZE
返回当前数据库的 key 的数量。
3、LASTSAVE
返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。
4、BGSAVE
在后台异步(Asynchronously)保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK
,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。
5、FLUSHDB
清空当前数据库中的所有 key。
此命令从不失败。
6、FLUSHALL
清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。
此命令从不失败。
7、SLOWLOG subcommand [argument]
什么是 SLOWLOG
Slow log 是 Redis 用来记录查询执行时间的日志系统。
查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。
设置 SLOWLOG
Slow log 的行为由两个配置参数(configuration parameter)指定,可以通过改写 redis.conf 文件或者用 CONFIG GET
和 CONFIG SET
命令对它们动态地进行修改。
第一个选项是 slowlog-log-slower-than
,它决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。
比如执行以下命令将让 slow log 记录所有查询时间大于等于 100 微秒的查询:
CONFIG SET slowlog-log-slower-than 100
而以下命令记录所有查询时间大于 1000 微秒的查询:
CONFIG SET slowlog-log-slower-than 1000
另一个选项是 slowlog-max-len
,它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len
时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推。
以下命令让 slow log 最多保存 1000 条日志:
CONFIG SET slowlog-max-len 1000
8、MONITOR
实时打印出 Redis 服务器接收到的命令,调试用。
9、SLAVEOF host port
SLAVEOF 命令用于在 Redis 运行时动态地修改复制(replication)功能的行为。
通过执行 SLAVEOF host port
命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port
将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
另外,对一个从属服务器执行命令 SLAVEOF NO ONE
将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
利用『 SLAVEOF NO ONE
不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
10、CONFIG SET parameter value
CONFIG SET 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET *
来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。
11、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 命令将引发一个错误。
对 redis.conf
文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf
文件不会被修改。 如果重写成功, 那么 redis.conf
文件为重写后的新文件。