13161216443

您所在位置: 首頁> java技術> 百知教育Java講師筆記:Redis 配置CONFIG(下)

百知教育Java講師筆記:Redis 配置CONFIG(下)

發布百知教育 來源:java技術 2019-05-10

Slaveof

 

-從時候使用slaveof指令區同步主機的數據。redis的主從特點:

1. redis的主從副本同步時異步的,可以配置min-slaves-to-write屬性停止寫操作一旦從機的數

目沒有達到既定的要求。

2. 可以讓部分從機從新同步一旦發現該從機個主機連接丟失了一點時間。

3. redis的從機都是自動的,無需用戶的干預,從機會自動的連接主機并且主動的同步主機上的

數據。

slaveof <masterip> <masterport>

 

masterauth

 

 如果從機在連接主機的時候,主機設置了訪問密碼,這個時候可以配置masterauth屬性設置從機

訪問主機的密碼。如果從機不提供密碼主機會拒絕從機的訪問。

masterauth <master-password>

 

slave-serve-stale-data

 

當從機連接主機的做數據同步的時候或者從機丟失了和主機的連接,可以配置該配置選項更改從機

的工作狀態。

1. 當配置為yes,無論從機處于何種狀態都可以選響應客戶端的讀請求,缺點是有可能訪問到過

期或者為空的數據(這是主從的通?。?。

2. 配置為no,如果處于同步或者丟失連接,無論客戶端發送什么信息(除了INFOslaveof),

從機全部回復errSYNC。

slave-serve-stale-data yes

 

slave-read-only

 

配置從機只讀。從機的數據每次同步主機的時候會刷新。

slave-read-only yes

 

repl-diskless-sync

 

從機同步策略有兩種 disksocket,警告目前 diskless同步依舊在實驗階段。新的從機以及正在

重新鏈接從機 但這些機器已經不可以從故障中恢復過來。這個時候,這時候從機需要做的就是同

步“full synchronization”。這個時候master和主機之間通過傳輸RDB文件做數據的完整同步,

這種RDB文件的同步策略有兩種方式:

1. Disk-backed:redis的主機創建一個新的進程在本地創建一個RDB

文件,然后數據交給redis一點一點的傳輸給從機。

2. Diskless:redis主機創建一個新的進程,該進程直接講RDB文件寫給從機的socket,此過程

不會創建RDB文件。如果基于Disk-based的同步方 式,當RDB文件創建結束以后,所有的從

機就會按照順序隊列依次下載RDB文件。但是基于網絡的方式,所有的從機也會 按照隊列方

式,如果傳輸過程出現了終止,redis主機會開啟一次新的傳輸。當時用diskless傳輸主機會讀

取配置參數單位秒,用來等待從機到來緩存 從機服務隊列。因為磁盤傳輸性能比較低,網絡

帶寬允許的情況下可以考慮使用diskless模式。

repl-diskless-sync no

 

repl-diskless-sync-delay

 

當開啟diskless模式,在主機開始同步之前需要等待所有slave的到來,并將傳輸任務緩存到傳輸

隊列。默認主機等待時間是5秒,如果設置為時候,傳輸就不會等待所有從機的到來。

repl-diskless-sync-delay 5

 

slave-priority

 

默認每一個從機的優先級都是100,該屬性在Redis Sentinel模式會用到,這里涉及到redis主從模

式下的故障自動轉移和主機的選舉。優先級越高的slave在故障轉移的時候會被優先選舉為主機。

值越小優先級越高,但如果設置為就表示該機器永遠都不可能晉升為master。

slave-priority 100

 

requirepass

 

設置本機的認證密碼,無論是slave還是client都要做認證。

requirepass jiangzz2013

 

appendonly

 

 redis默認使用RDB作為內存數據持久話的一種機制,但是RDB機制的數據備份是通過配置save

令去觸發后臺的 數據同步,這個時候有可能會導致幾分鐘內的數據寫丟失,這個時候需可以嘗試

開啟AOF機制,這種機制可以比RDB機制有更好的數據持久話機制,AOF是通過記錄指令日志來

實現數據的安全,一旦設置了AOF,在重啟redis服務的時候,redis會默認自動的加載

appedonly.aof文件。默認情況 aof是關閉的。

appendonly no

 

appendfilename

 

指定aof日志的文件名字。

appendfilename "appendonly-6379.aof"

 

appendfsync

 

該選項設置aof日志文件flushappendfilename文件的時機,可選值有3種:

1. always:會將每一次寫操作flush到文件中,慢但最安全

2. no:講指令的flush時機交給OS系統去決定,效率高

3. everysec:這是一種折中方案 介于alwaysno之間,每一秒鐘flush一次

如果不太確定選擇哪個直接配置everysec是不錯的選擇。

appendfsync everysec

 

no-appendfsync-on-rewrite

 

因為開啟AOFfsync策略以后,后臺的保存進程(RDB/AOF rewrite)繪執行很多的IO操作。在

很多的linux系統指中,后臺的保存進程可能會因為fsync策略被阻塞,為了減輕這種阻塞可以配置

no- appendfsync-on-rewrite屬性去暫時阻止在bgsave或者bgrewriteaof的時候執行fsynch();

如果系統存在延遲 的時候可以考慮講概述行修改為yes。

no-appendfsync-on-rewrite no

 

Automic Rewite

 

redis在日志文件達到一定比例的時候會自動重寫aof日志文件。重寫過程就是簡化aof日志文件,

所謂的簡化是更具內 存的數據生成操作日志指令,改動作可以通過執行BGREWRITEAOF指令觸

發。其中auto-aof-rewrite-percentage表示新的 aof文件已經超出上一次aof文件的百分比的時

候就會開啟一次rewrite,如果已經超出了百分比,但是aof文件依然小于64MB,就不會開啟

rewrite。

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

 

aof-load-truncated

 

當在啟動redis的時候,有時候aof日志文件的結尾是不是完整的,這個時候redis就會終止啟動。

這種情況一般發生 redis機器宕機。這個時候可以設置為yes,忽略。當設置為no的時候,一旦

有截斷現象,redis就會終止啟動。這個時候用戶需要執行redis-check-aof工具對日志問夾做處

理。注意這種設置不適用文件的中間截斷。

 aof-load-truncated yes

 

cluster-enabled

 

啟動redisclsuster模式,默認redis該選項是注釋起來的。注意:rediscluster代碼已經處于成熟

階段,但是目前使用群體還需擴大。

cluster-enabled yes

 

luster-config-file

 

每一個redis集群實例都有一個配置文件,用來保存節點信息,該文件是系統自動創建,但需要注

意如果一個系統上運行多個rediscluster實例,注意文件名不要出現沖突。

cluster-config-file nodes-6379.conf

 

cluster-node-timeout

 

該選項用于配置集群節點的判斷是否宕機的時間參數。

cluster-node-timeout 15000

 


上一篇:百知教育Java講師筆記:Redis 配置CONFIG(上)

下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

相關推薦

www.akpsimsu.com

有位老師想和您聊一聊

關閉

立即申請