redis笔记09-redis运维常用命令

【redis 服务器端命令】

TIME 查看时间戳与微秒数

DBSIZE 查看当前库中的key数量

BGREWRITEAOF 后台进程重写AOF

BGSAVE 后台保存rdb快照

SAVE 保存rdb快照

LASTSAVE 上次保存时间

SLAVEOF 设为slave服务器

FLUSHALL 清空所有db

FLUSHDB 清空当前db

SHUTDOWN[""|save|nosave] 断开连接,关闭服务器

SLOWLOG 显示慢查询

INFO 显示服务器信息

CONFIG GET 获取配置信息

CONFIG SET 设置配置信息

MONITOR 打开控制台

SYNC 主从同步

CLIENT LIST 客户端列表

CLIENT KILL 关闭某个客户端

CLIENT SETNAME 为客户端设置名字

CLIENT GETNAME 获取客户端名字

 

【观察参数】

1: 内存

# Memory

used_memory:859192 数据结构的空间

used_memory_rss:7634944 实占空间

mem_fragmentation_ratio:8.89 前2者的比例,1.N为佳

2: 主从复制

# Replication

role:slave

master_host:192.168.1.128

master_port:6379

master_link_status:up

3:持久化

# Persistence

rdb_changes_since_last_save:0

rdb_last_save_time:1375224063

4: fork耗时

#Status

latest_fork_usec:936 上次持久化花费微秒

5: 慢日志

config get/set slowlog-log-slower-than

CONFIG get/SET slowlog-max-len

slow log get 获取慢日志

 

【准备工作】

重新复制最原始的安装包里的redis.conf 到对应目录,打开,修改如下:

然后复制redis.conf 为 redis6380.conf,修改如下:

然后启动6379服务器,会看到已配置的 /var/rdb 下生成了 appendonly6379.aof 文件:

 

【运维常用的server端命令】

TIME 查看时间戳与微秒数

DBSIZE 查看当前库中的key数量

BGREWRITEAOF 后台进程重写AOF

此命令之前说过,可以手动重新写入最终的aof

BGSAVE 后台保存rdb快照

SAVE 保存rdb快照

LASTSAVE 上次保存时间

手动保存后,就会立即生成 .rdb 文件;lastsave可以查看上次手动保存rdb的时间。

 

/*下面两个命令慎用!!!*/

FLUSHALL 清空当前服务器的所有db,包括select0,select1,select2....所有的库都会被清空。

FLUSHDB 只清空当前db.

 

[重要1] INFO 显示服务器全部信息

◆ INFO后面可以直接跟上想要获取的子阶段的内容,例如:INFO Server/ INFO Memory / ...

上面通过 INFO 得到的数据,最主要是观察如下几个:

① Memory(内存)

used_memory:859192 #实际占用的数据结构的空间

used_memory_rss:7634944 #理论上分配的空间

mem_fragmentation_ratio:8.89 #前2者的比例,1.N为佳。如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.

② Persistence (持久化的信息)

rdb_changes_since_last_save:0 #自从上次rdb改动之后,又有多少改动

rdb_last_save_time:1375224063 #上次改动保存的时间

③ Status中的fork耗时:

latest_fork_usec:936 #上次导出rdb快照,持久化花费微秒

注意: 如果某实例有10G内容,导出需要2分钟,每分钟写入10000次,导致不断的rdb导出,磁盘始处于高IO状态.

④ Replication (主从复制的信息)

——→ 当前是没有从服务器的情况

——→ 接下来配置6381服务器作为6379的从服务器,并启动:

vim redis6381.conf:

保存:

然后再在主服务器 6379 使用 INFO命令,观察 Replication 部分,结果如下:

 

CONFIG GET 获取配置信息

#例如,获取是否需要密码,requirepass

# Slowlog 显示慢查询(注:多慢才叫慢)

答: 由slowlog-log-slower-than 10000 来指定,(单位是微秒);意思就是查询时间超过10000微秒的就会记录下来。

# 服务器储存多少条慢查询的记录?由 slowlog-max-len 128(条) 来做限制:

CONFIG SET 设置配置信息

#例如,设置慢查询的时间限制由10000微秒 改为 100微秒:

SLOWLOG 显示慢查询

# slowlog get N 获取慢日志

SHUTDOWN[""|save|nosave] 断开连接,关闭服务器

MONITOR 打开控制台

SYNC 主从同步

CLIENT LIST 客户端列表

CLIENT KILL关闭某个客户端

CLIENT SETNAME 为客户端设置名字

CLIENT GETNAME 获取客户端名字

Slaveof master-Host port , 把当前实例设为master的slave

Info [Replication/CPU/Memory..] 查看redis服务器的信息

 

◆ 对于不小心清空所有数据了的补救措施!

Flushall 清空所有库所有键

Flushdb 清空当前库所有键

Showdown [save/nosave]

 

注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器

然后 手工编辑aof文件, 去掉文件中的 “flushall ”相关行, 然后开启服务器,就可以导入回原来数据.

如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.

 

【实例演示】

操作过程中,不小心flushall 了

此时,aof文件是存在的

赶紧执行 shutdown nosave

然后打开aof文件,删掉最后面的“flushall”,保存。重启服务就可以了。


版权声明:本文为rxbook原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。