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”,保存。重啓服務就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章