數(shù)據(jù)庫
redis默認(rèn)會創(chuàng)建16個數(shù)據(jù)庫;
刪除過期鍵有三種策略:
- 定時刪除:對某個鍵設(shè)置過期時間,時間一到就刪除鍵;
- 惰性刪除:查詢的時候,判斷是否過期,沒過期返回,過期就刪除;
- 定期刪除:隔一段時間對數(shù)據(jù)庫里的所有過期數(shù)據(jù)進(jìn)行清除;
持久化
RDB
- 將某個時間點的所有數(shù)據(jù)都存放到硬盤上。
- 可以將快照復(fù)制到其它服務(wù)器從而創(chuàng)建具有相同數(shù)據(jù)h 的服務(wù)器副本。
- 如果系統(tǒng)發(fā)生故障,將會丟失最后一次創(chuàng)建快照之后的數(shù)據(jù)。
- 如果數(shù)據(jù)量很大,保存快照的時間會很長。
AOF
將寫命令添加到 AOF 文件(Append Only File)的末尾。
使用 AOF 持久化需要設(shè)置同步選項,從而確保寫命令同步到磁盤文件上的時機。這是因為對文件進(jìn)行寫入并不會馬上將內(nèi)容同步到磁盤上,而是先存儲到緩沖區(qū),然后由操作系統(tǒng)決定什么時候同步到磁盤。有以下同步選項:
| 選項 | 同步頻率 |
|---|---|
| always | 每個寫命令都同步 |
| everysec | 每秒同步一次 |
| no | 讓操作系統(tǒng)來決定何時同步 |
- always 選項會嚴(yán)重減低服務(wù)器的性能;
- everysec 選項比較合適,可以保證系統(tǒng)崩潰時只會丟失一秒左右的數(shù)據(jù),并且 Redis 每秒執(zhí)行一次同步對服務(wù)器性能幾乎沒有任何影響;
- no 選項并不能給服務(wù)器性能帶來多大的提升,而且也會增加系統(tǒng)崩潰時數(shù)據(jù)丟失的數(shù)量。
隨著服務(wù)器寫請求的增多,AOF 文件會越來越大。Redis 提供了一種將 AOF 重寫的特性,能夠去除 AOF 文件中的冗余寫命令。