Redis-3. Redis高級命令



高級命令三:主從複製linux


一、主從複製:目的是實現讀寫分離redis

·Master能夠擁有多個slave數據庫

·多個slave能夠鏈接同一個Master外,還能夠鏈接其餘的slave緩存

·主從複製不會阻塞master,在同步數據時,master能夠繼續處理client請求服務器

·提升系統的延伸性app


二、主從複製過程:ide


1)slave與master創建鏈接,發送sync同步命令;性能

2)master開啓後臺進程,將數據庫快照保存到文件中,同時master主進程會開始收集新的寫命令並緩存;spa

3)後臺完成保存後,就將文件發送給slave;日誌

4)slave將此文件保存到硬盤上;


三、主從複製配置:


準備3臺linux服務器,分別192.168.90.121(主)、192.168.90.12二、192.168.90.123;分別安裝redis;


步驟:修改redis.conf配置文件

第一步:slaveof <masterIp> <masterport> 舉例:slaveof 192.168.1.121 6379

第二部:masterauth<master-password>   舉例:masterauth wlan



高級命令四:哨兵


  在主從複製之後,若是想對主從服務器進行監控,實現高可用。redis2.6之後提供了一個哨兵機制。哨兵的含義就是監控redis系統的運行情況,主要功能有兩點:


1. 監控主數據庫和從數據庫是否運行正常。

2. 主服務器出現故障時,能夠自動將從服務器轉換爲主服務器。


實現步驟:在其中一臺從服務器中或者另外用別的服務器進行配置


(1)修改sentinel.conf配置文件


# sentinel monitor <master-name> <ip> <redis-port> <quorum>

sentinel monitor mymaster 192.168.1.121  6379 2  //名稱 IP 端口號 投票選舉次數

# sentinel down-after-milliseconds <master-name> <milliseconds>

sentinel down-after-milliseconds mymaster 5000 //默認多久檢測一次主節點

# sentinel failover-timeout <master-name> <milliseconds>

sentinel failover-timeout mymaster 180000

# sentinel parallel-syncs <master-name> <numslaves>

sentinel parallel-syncs mymaster 2  //從節點數量

# sentinel auth-pass <master-name> <password>

sentinel auth-pass mymaster wlan


(2)啓動sentinel哨兵

[root@wlan121 bin]# redis-server /usr/local/redis/etc/sentinel.conf --sentinel &


(3)查看哨兵相關信息

[root@wlan121 bin]# redis-cli -h 192.168.1.122 -p 26379 info Sentinel



高級命令六:持久化

     

   redis是一個支持持久化的內存數據庫,也就是說redis須要常常將內存中的數據同步到硬盤來保證持久化

    

redis持久化的兩種方式:


(1)snapshotting快照方式,默認。將內存以快照的方式寫入到二進制文件中。默認爲dump.rdb。能夠配置redis在n秒內若是超過m個key則修改就自動作快照。快照方式是必定時間間隔作一次


save 900 1 #900秒內若是超過1個key被修改,則發起快照保存

save 300 10 #300秒內若是超過10個key被修改,則發起快照保存


(2)append-only file(aof)的方式,因爲快照方式是在必定時間間隔作一次,因此可能會發生redis意外down的狀況就會丟失最後一次快照後全部修改的數據。而使用aof時,該機制以日誌的形式記錄服務器所處理的每個寫操做,在redis服務器啓動之初讀取該文件來從新構建數據庫,以保證啓動後數據庫中的數據是完整的。文件在bin目錄下:appendonly.aof。aof不是當即寫到硬盤上。能夠經過配置文件修改強制寫到硬盤中。


aof設置:

1)appendonly yes  //啓動aof持久化方式有三種修改方式

2)追加的模式

appendfsync always //收到寫命令就當即寫入磁盤,效率慢可是保證了徹底的持久化

appendfsync  everysec //每秒寫入磁盤一次,在性能和持久化作了作好的折中

appendfsync no  //從不一樣步。高效可是數據不會被持久化

相關文章
相關標籤/搜索