redis.conf 配置項說明如下
redis配置文件詳解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
# vi redis.conf daemonize yes #是否以后臺進(jìn)程運(yùn)行 pidfile /var/run/redis/redis-server.pid #pid文件位置 port 6379#監(jiān)聽端口 bind 127.0.0.1 #綁定地址,如外網(wǎng)需要連接,設(shè)置0.0.0.0 timeout 300 #連接超時時間,單位秒 loglevel notice #日志級別,分別有: # debug :適用于開發(fā)和測試 # verbose :更詳細(xì)信息 # notice :適用于生產(chǎn)環(huán)境 # warning :只記錄警告或錯誤信息 logfile /var/log/redis/redis-server.log #日志文件位置 syslog-enabled no #是否將日志輸出到系統(tǒng)日志 databases 16#設(shè)置數(shù)據(jù)庫數(shù)量,默認(rèn)數(shù)據(jù)庫為0 ############### 快照方式 ############### save 900 1 #在900s(15m)之后,至少有1個key發(fā)生變化,則快照 save 300 10 #在300s(5m)之后,至少有10個key發(fā)生變化,則快照 save 60 10000 #在60s(1m)之后,至少有1000個key發(fā)生變化,則快照 rdbcompression yes #dump時是否壓縮數(shù)據(jù) dir /var/lib/redis #數(shù)據(jù)庫(dump.rdb)文件存放目錄 ############### 主從復(fù)制 ############### slaveof < masterip > < masterport > #主從復(fù)制使用,用于本機(jī)redis作為slave去連接主redis masterauth < master-password > #當(dāng)master設(shè)置密碼認(rèn)證,slave用此選項指定master認(rèn)證密碼 slave-serve-stale-data yes #當(dāng)slave與master之間的連接斷開或slave正在與master進(jìn)行數(shù)據(jù)同步時,如果有slave請求,當(dāng)設(shè)置為yes時,slave仍然響應(yīng)請求,此時可能有問題,如果設(shè)置no時,slave會返回"SYNC with master in progress"錯誤信息。但I(xiàn)NFO和SLAVEOF命令除外。 ############### 安全 ############### requirepass foobared #配置redis連接認(rèn)證密碼 ############### 限制 ############### maxclients 128#設(shè)置最大連接數(shù),0為不限制 maxmemory < bytes >#內(nèi)存清理策略,如果達(dá)到此值,將采取以下動作: # volatile-lru :默認(rèn)策略,只對設(shè)置過期時間的key進(jìn)行LRU算法刪除 # allkeys-lru :刪除不經(jīng)常使用的key # volatile-random :隨機(jī)刪除即將過期的key # allkeys-random :隨機(jī)刪除一個key # volatile-ttl :刪除即將過期的key # noeviction :不過期,寫操作返回報錯 maxmemory-policy volatile-lru#如果達(dá)到maxmemory值,采用此策略 maxmemory-samples 3 #默認(rèn)隨機(jī)選擇3個key,從中淘汰最不經(jīng)常用的 ############### 附加模式 ############### appendonly no #AOF持久化,是否記錄更新操作日志,默認(rèn)redis是異步(快照)把數(shù)據(jù)寫入本地磁盤 appendfilename appendonly.aof #指定更新日志文件名 # AOF持久化三種同步策略: # appendfsync always #每次有數(shù)據(jù)發(fā)生變化時都會寫入appendonly.aof # appendfsync everysec #默認(rèn)方式,每秒同步一次到appendonly.aof # appendfsync no #不同步,數(shù)據(jù)不會持久化 no-appendfsync-on-rewrite no #當(dāng)AOF日志文件即將增長到指定百分比時,redis通過調(diào)用BGREWRITEAOF是否自動重寫AOF日志文件。 ############### 虛擬內(nèi)存 ############### vm-enabled no #是否啟用虛擬內(nèi)存機(jī)制,虛擬內(nèi)存機(jī)將數(shù)據(jù)分頁存放,把很少訪問的頁放到swap上,內(nèi)存占用多,最好關(guān)閉虛擬內(nèi)存 vm-swap-file /var/lib/redis/redis.swap #虛擬內(nèi)存文件位置 vm-max-memory 0 #redis使用的最大內(nèi)存上限,保護(hù)redis不會因過多使用物理內(nèi)存影響性能 vm-page-size 32 #每個頁面的大小為32字節(jié) vm-pages 134217728 #設(shè)置swap文件中頁面數(shù)量 vm-max-threads 4 #訪問swap文件的線程數(shù) ############### 高級配置 ############### hash-max-zipmap-entries 512 #哈希表中元素(條目)總個數(shù)不超過設(shè)定數(shù)量時,采用線性緊湊格式存儲來節(jié)省空間 hash-max-zipmap-value 64 #哈希表中每個value的長度不超過多少字節(jié)時,采用線性緊湊格式存儲來節(jié)省空間 list-max-ziplist-entries 512 #list數(shù)據(jù)類型多少節(jié)點(diǎn)以下會采用去指針的緊湊存儲格式 list-max-ziplist-value 64 #list數(shù)據(jù)類型節(jié)點(diǎn)值大小小于多少字節(jié)會采用緊湊存儲格式 set-max-intset-entries 512 #set數(shù)據(jù)類型內(nèi)部數(shù)據(jù)如果全部是數(shù)值型,且包含多少節(jié)點(diǎn)以下會采用緊湊格式存儲 activerehashing yes #是否激活重置哈希 |
總結(jié):
1、redis提供幾種持久化機(jī)制:
a). RDB持久化
工作方式 :根據(jù)時間的間隔將redis中數(shù)據(jù)快照(dump)到dump.rdb文件
優(yōu)勢 :備份恢復(fù)簡單。RDB通過子進(jìn)程完成持久化工作,相對比AOF啟動效率高
劣勢 :服務(wù)器故障會丟失幾分鐘內(nèi)的數(shù)據(jù)
b). AOF持久化
工作方式 :以日志的形式記錄所有更新操作到AOF日志文件,在redis服務(wù)重新啟動時會讀取該日志文 件來重新構(gòu)建數(shù)據(jù)庫,以保證啟動后數(shù)據(jù)完整性。
優(yōu)勢 :AOF提供兩種同步機(jī)制,一個是fsync always每次有數(shù)據(jù)變化就同步到日志文件和fsync everysec每秒同步一次到日志文件,最大限度保證數(shù)據(jù)完整性。
劣勢:日志文件相對RDB快照文件要大的多
AOF日志重寫功能 :
AOF日志文件過大,redis會自動重寫AOF日志,append模式不斷的將更新記錄寫入到老日志文件中,同時redis還會創(chuàng)建一個新的日志文件用于追加后續(xù)的記錄。
c). 同時應(yīng)用AOF和RDB
對于數(shù)據(jù)安全性高的場景,可同時使用AOF和RDB,這樣會降低性能。
d). 無持久化
禁用redis服務(wù)持久化功能。
2、AOF日志文件出錯后,修復(fù)方法 :
redis-check-aof --fix appendonly.aof #--fix參數(shù)為修復(fù)日志文件,不加則對日志檢查
3、不重啟redis從RDB持久化切換到AOF持久化 :
1
2
|
redis-cli> CONFIG SET appendonly yes #啟用AOF redis-cli> CONFIG SET save "" #關(guān)閉RDB |
redis配置文件詳解列出了redis基礎(chǔ)配置項都是比較常用的,使用redis一定要了解這些配置項