數據持久化方案:redisDB
基于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修改
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!