redis 备份导出rdb_redis简单安装学习
redis 介紹
Redis是noSql也就是非關系型數據庫,可以用來做緩存,緩存就是在內存中存儲的數據備份,當數據沒有發生本質改變的時候,我們就不讓數據的查詢去數據庫進行操作,而去內存中取數據,這樣就大大降低了數據庫的讀寫次數,而且從內存中讀數據的速度比去數據庫查詢要快一些,這樣同時又提高了效率。
一、redis單實例搭建
1. 下載redis-5.0.4.tar.gz(最新穩定版本)
2. 解壓源碼進入目錄
3. make
4. make test測試編譯情況(可能出現:need tcl >8.4這種情況,解決方法yum install tcl)
5. 安裝 make PREFIX=/usr/local/redis install
6. make install之后,redis目錄下的bin會有如下幾個文件
redis-benchmark 性能測試工具
redis-check-aof 日志文件檢測工(比如斷電造成日志損壞,可以檢測并修復)
redis-check-rdb 快照文件檢測工具,效果類上
redis-cli 客戶端
redis-server 服務端
7. 復制配置文件
cp /redis-5.0.4/redis.conf /usr/local/redis
8. 編輯vim redis.conf
注釋掉 bind 127.0.0.1 這個是 設置redis 只接收來自于該 IP 地址的請求,如果不進行設置,那么將處理所有請求。
將daemonize no 改為yes 讓redis 以后臺服務形式運行。
9. ./bin/redis-server redis.conf 啟動redis
./bin/redis-cli 客戶端連接
二、redis的三種集群方式
1. redis主從集群配置
復制 redis.conf 為redis6380.conf
編輯 vim redis6380.conf
將端口改6380 并設置為6379的端口從服務器(原本使用的是slaveof,但因為有人提出slave是奴隸的意思冒犯到了別人就改成看了replicaof)。
如果主服務器設置了密碼如requirepass yhd123 則yhd123就是服務器密碼(這里并沒有設置密碼),那從服務器就得設置masterauth yhd123,設置從服務器為只讀replica-read-only yes。
啟動redis 服務,用客戶端連接6380,輸入info ,會發現6380端口的角色role是slave。而6379端口的role是master,并且有一個slave。
2. 哨兵主從集群配置
因為主從集群的情況下 如果master突然掛掉,除非手動將slave設置為master,再將其他slave連接到新的master,否則整個集群都不再工作,為了保證在master掛掉的情況下,集群繼續工作,需要用到哨兵模式sentinel自動設置master并且slave連接上新master。
配置哨兵。
cp /usr/local/redis-5.0.4/sentinel.conf /usr/locla/redis
編輯 vim sentinel.conf 設置后臺服務運行
當2個sentinel實例都認為master失效時,正式失效。
啟動./bin/redis-server sentinel.conf --sentinel 如需配置哨兵集群,按以上方式使用多個配置文件監控同一個主節點即可。
三、redis-cluster 多主多從集群配置
編輯 vim redis.conf
cluster開啟必須重命名指定cluster-config-file,不能與別的節點相同,否則會啟動失敗。
創建6個實列,我這里是3臺服務器 2個端口6個實例,然后將每個實例啟動會生產節
點nodes-*.conf文件。
執行命令創建命令redis-cli --cluster create ip:6379 ip:6380 ip1:6379 ip1:6380 ip2:6379 ip2:6380 --cluster-replicas 1
創建多主多從必須有 --cluster-replicas 1 ,不然就是6個master。
用redis客戶端連接集群./bin/redis-cli -c輸入命令查看集群信息。
查看集群節點cluster nodes,會看到對應master-slave,這樣集群就搭建完畢了。任一主節點故障以后,從節點都會變為主節點,如果所有主從節點都故障則集群失效。
四、備份(持久化)
1. rdb持久化
save 900 1 // 900內,有1條寫入,則產生快照
save 300 1000 // 如果300秒內有1000次寫入,則產生快照
save 60 10000 // 如果60秒內有10000次寫入,則產生快照
(這3個選項都屏蔽,則rdb禁用)
stop-writes-on-bgsave-error yes // 后臺備份進程出錯時,主進程停不停止寫入?
rdbcompression yes // 導出的rdb文件是否壓縮
Rdbchecksum yes // 導入rbd恢復時數據時,要不要檢驗rdb的完整性
dbfilename dump.rdb //導出來的rdb文件名
dir ./ //rdb的放置路徑
2. aof持久化
appendonly no # 是否打開 aof日志功能
Appendfilename #導出來的aof文件名
appendfsync always # 每1個命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒寫1次
appendfsync no # 寫入工作交給操作系統,由操作系統判斷緩沖區大小,統一寫入到aof. 同步頻率低,速度快
no-appendfsync-on-rewrite no: # 正在導出rdb快照的過程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重寫時的大小,增長率100%時,重寫
auto-aof-rewrite-min-size 64mb #aof文件,至少超過64M時,重寫
在集群里面只要一啟動,只要rdb文件和aof沒有丟失便會自動恢復,集群里面設置的備份方式為主aof 從 rdb+aof 。
五、運維
1. 在dump rdb過程中,aof如果停止同步,所有的操作緩存在內存的隊列里, dump完成后,統一操作。
2. aof重寫是指把內存中的數據,逆化成命令,寫入到.aof日志里.以解決 aof日志過大的問題。
3. 如果rdb文件,和aof文件都存在,優先用aof來恢復數據。
4. 恢復時rdb快,因為其是數據的內存映射,直接載入到內存,而aof是命令,需要逐條執行。
5. 運維的一些命令
BGREWRITEAOF 后臺進程重寫AOF
BGSAVE 后臺保存rdb快照
SAVE 保存rdb快照
LASTSAVE 上次保存時間
Slaveof master-Host port , 把當前實例設為master的slave
Flushall 清空所有庫所有鍵
Flushdb 清空當前庫所有鍵
Showdown 關閉服務器
注: 如果不小心運行了flushall, 立即 shutdown nosave ,關閉服務器
然后手工編輯aof文件,去掉文件中的 “flushall ”相關行,然后開啟服務器,就可以導入回原來數據.如果,flushall之后,系統恰好bgrewriteaof了,那么aof就清空了,數據丟失.
Slowlog 顯示慢查詢
由slowlog-log-slower-than 10000,來指定多慢。(單位是微秒)
由 slowlog-max-len 128 ,來做限制服務器儲存多少條慢查詢的記錄。
Info [Replication/CPU/Memory..]
查看redis服務器的信息
6.Redis運維時需要注意的參數
內存
# Memory
used_memory:859192 數據結構的空間
used_memory_rss:7634944 實占空間
mem_fragmentation_ratio:8.89 前2者的比例,1.N為佳,如果此值過大,說明redis的內存的碎片化嚴重,可以導出再導入一次.
主從復制
# Replication
role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:up
持久化
# Persistence
rdb_changes_since_last_save:0
rdb_last_save_time:1375224063
fork耗時
#Status
latest_fork_usec:936 上次導出rdb快照,持久化花費微秒
注意: 如果某實例有10G內容,導出需要2分鐘,
每分鐘寫入10000次,導致不斷的rdb導出,磁盤始處于高IO狀態.
慢日志
config get/set slowlog-log-slower-than
CONFIG get/SET slowlog-max-len
slowlog get N 獲取慢日志
運行時更改master-slave
修改一臺slave(設為A)為new master
1) 命令該服務不做其他redis服務的slave
命令: slaveof no one
2) 修改其readonly為yes
其他的slave再指向new master A
1) 命令該服務為new master A的slave
命令格式 slaveof IP port
總結
以上是生活随笔為你收集整理的redis 备份导出rdb_redis简单安装学习的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 8 使用_【化学技能8】 酸式滴定管的使
 - 下一篇: ios 设备获取idfa_超4成用户选择