redis高級進階(2)

本篇主要介紹以下內容
1.redis服務器數據庫
2.redis對過時鍵的處理
3.redis持久化策略redis

1.redis服務器數據庫

redis服務器若是不指定數據庫的具體數據,默認是16個數據庫。
客戶端鏈接到redis服務器後,須要對指定的數據庫才能操做。數據庫

2.Redis對過時key的處理

咱們知道redis的存儲是基於內存的,一般一臺普通的機器內存是有限的,因此咱們須要按期處理一些不經常使用的數據。這就須要設置一下key的過時時間。服務器

2.1 過時策略

假設某個key過時了,則該key保存到哈希表中,那麼應該如何對這些過時key進行處理呢?一般有以下三種策略:
1.定時刪除,即設置一個定時器,時常去檢測過時key,這樣很是佔用cpu。
2.惰性刪除,每次從redis中取出改key的時候判斷下該key是否過時,若是過時了,則刪除,返回null。這種作法佔用內存。
3.按期刪除,即每隔一段時間去刪除一下過時鍵,咱們限制刪除的執行時長與頻率。這裏就須要合理的設置時長。
redis採用的是惰期刪除+按期刪除策略,能夠在redis.conf配置文件中設置。因此說redis中存在過時鍵到期了,可是沒有被刪除的狀況。內存

2.2 內存淘汰機制

若是惰期刪除+按期刪除漏掉了不少過時key,則會致使大量的過時key堆積在內存中,最終致使redis服務器內存耗盡,咋辦?
咱們能夠設置內存最大使用量,當內存使用超出時,會實施"數據淘汰策略"。redis的數據淘汰策略有不少種,自行查看文檔,且設置適合本身業務的。文檔

3.redis持久化

redis是基於內存的,若是內存壞了,則數據會所有丟失,因此咱們會想辦法將數據存儲到硬盤中,這就是數據持久化。
redis提供了兩種持久化方案
1.RDB(基於快照),即當符合必定條件時redis會自動將內存中的數據進行快照並持久到硬盤中。這是redis默認採用的持久化方案,在redis.conf配置文件中設置。
2.AOF(文件追加),即每執行一條redis更改命令,則redis會自動將該命令寫入硬盤中,該種方式通常不用。配置

相關文章
相關標籤/搜索