軟體簡介
基於redis和mysql的資料持久化方案
redis執行時連線資料庫 cache失效時同步讀mysql, 資料修改時候通過訊息佇列通知db執行緒寫mysql reids.conf增加幾個配置選項
mysql_host
mysql_port
mysql_user
mysql_pwd
mysql_dbname
persistence_mmap_file: 訊息列隊指定的mmap對映檔案
write_thread_num 寫db執行緒數
對key的命名有規範 「tablename_id(int)」形式, 如果僅僅是 「tablename」 則系統解析的時候id預設為0 例如 「user_1」
系統會自動對應」user」表的id為1的行 「user_0」 或者 「user」 系統會自動對應」user」表的id為0的行
目前支援 string, list, zset, 以及incr 格式, mysql表結構不需要自己定義,系統自動對映 訊息佇列採用無鎖佇列,
支援mmap與malloc兩種方式, 採用mmap方式理論上在程式意外死掉的時候不丟失佇列資料 經過壓力測試, 修改前和修改後的redis效能損耗為10%
- 20%, 後期會考慮再進行優化 另外因為是同步讀db, 如果大量的cache失效會帶來嚴重的io阻塞, 從而影響效能,
後期考慮加入配置選項在redis啟動以後主動從db恢復資料
基於redis 2.6.16修改
redis持久化 AOF持久化
1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...
Redis的持久化
我們都知道,redis的資料都是儲存在記憶體裡面的,導致了redis有如下特點 1.由於記憶體的容量較小,並且速度很快,所以redis相對於mysql orcle等資料庫相比,儲存的容量較小,但是io速度特別快。2.由於記憶體的臨時儲存性,在機器斷電之後記憶體裡的內容將會丟失,若redis沒有持久化...
redis的持久化
redis有兩種持久化策略 rdb 是redis的預設持久化級制。相當於照快照,儲存的是一種狀態。優點 快照速度極快 還原資料速度極快 適用於災難備份 缺點 小記憶體機器不適合,適用於記憶體充裕的計算機 rdb機制符合要求就會找快照 隨時啟動,會突然的占用一部分系統資源 伺服器正常關閉 key滿足一...