Redis全記憶體運行

來源:互聯網
上載者:User

Redis全記憶體運行

在某些使用情境中,我們並不需要使用Redis的持久化,反而需要發揮redis的記憶體資料庫特性,實現完全記憶體運行,達到需要的高效能。

Redis 本身支援持久化,通過在一定時間間隔或觸發操作,將記憶體中的資料同步到磁碟來保證持久化。Redis 支援兩種持久化方式,一種是  Snapshotting(快照),儲存為dump.rdb檔案,也是預設,另一種是 Append-only file(縮寫aof)的方式,儲存為 .aof 檔案。

Snapshot 快照 通過save或者bgsave命令通知redis做一次快照持久化。save操作是在主線程中儲存快照的,由於redis是用一個主線程來處理所有用戶端的請求,這種方式會阻塞所有用戶端請求。所以不推薦使用。另一點需要注意的是,每次快照持久化都是將記憶體資料完整寫入到磁碟一次,並不是增量的只同步增量資料。如果資料量大的話,寫操作會比較多,必然會引起大量的磁碟IO操作,可能會嚴重影響效能。

在預設的快照 rdb儲存方式中,redis.conf 裡面的配置如下

save 900 1  #900秒內如果超過1 個key 被修改,則發起快照儲存
save 300 10  #300秒內容如超過10個key 被修改,則發起快照儲存
save 60 10000

如果我們需要關閉快照,只需要將這幾行注釋了,然後重啟 redis 即可。

如果是正在啟動並執行執行個體,可以使用 redis-cli的命令

# 查看當前配置
config get save
# 關閉快照
config set save ""

來線上更新配置,輸出OK表示設定成功。

AOF  比快照方式有更好的持久化性,是由於在使用aof 持久化方式時, redis 會將每一個收到的寫

命令都通過write函數追加到檔案中(預設是appendonly.aof) 。當redis 重啟時會通過重新執行檔案中

儲存的寫命令來在記憶體中重建整個資料庫的內容

預設配置如下:
 
appendonly yes      //啟用日誌追加持久化方式
#appendfsync always //每次收到寫命令就立即強制寫入磁碟,最慢的,但是保證完全的持久化,不推薦使用
appendfsync everysec //每秒鐘強制寫入磁碟一次,在效能和持久化方面做了很好的折中,推薦
#appendfsync no //完全依賴作業系統,效能最好,持久化沒保證

我們需要更新設定檔為:

appendfsync no

線上更新配置使用

# 查看當前配置
config get appendfsync
# 關閉快照
config set appendfsync no

通過這兩個配置,redis就可以完全在記憶體運行。

如果想手動進行持久化,可以使用Redis的 bgsave 和 bgrewriteaof 來手動進行持久化。

Ubuntu 14.04下Redis安裝及簡單測試

Redis叢集明細文檔

Ubuntu 12.10下安裝Redis(圖文詳解)+ Jedis串連Redis

Redis系列-安裝部署維護篇

CentOS 6.3安裝Redis

Redis安裝部署學習筆記

Redis設定檔redis.conf 詳解

Redis 的詳細介紹:請點這裡
Redis 的:請點這裡

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.