標籤:
前言:Redis的使用越來越重要、以下僅為個人學習的點點記錄、僅供參考。一、簡單的redis安全性設定
1. 生產環境的redis最好建議在redis設定檔中設定bind。配置允許指定的ip登陸redis。
//下面ip僅供參考、具體根據您個人的生產環境進行配置bind 127.0.0.1
2. 在redis.conf或者命令列中給redis設定密碼(建議密碼盡量設定複雜一些)
//redis.conf中添加配置requirepass "your password"//或者執行命令redis> CONFIG set requirepass "your password"//重啟完redis後使用 redis-cli -a your password 應該就可以成功使用密碼登陸redis
一、redis持久化說明
1. RDB方式持久化方式 (save 和 bgsave方式)
- dump.rdb是經過壓縮的二進位檔案、它佔用的空間小於資料在記憶體中佔用空間。
- 以下簡單介紹下和RDB持久化方式關係較大的幾個配置項:
//dir配置rdb二進位檔案儲存再磁碟的那個位置dir /usr/local/var/db/redis///dbfilename配置儲存的檔案名稱dbfilename dump.rdb//rdbcompression 配置是否使用壓縮來儲存二進位檔案 預設yesrdbcompress yes//save配置(最重要)save 900 1 //900秒之內如果有1個鍵被修改的話進行快照save 300 10 //300秒之內如果有10個鍵被修改的話進行快照save 60 10000 //60秒之內如果有10000個鍵被修改的話進行快照
由於redis在啟動的時候會讀入磁碟上面的rdb檔案、以達到資料恢複。從而達到持久化的目的,因此像RDB這種從記憶體問磁碟dump快照的方式有幾個缺點:
- 如果當redis異常死掉時,最近的資料會丟失(最後一次儲存快照以後的所有資料修改會丟失、遺失資料的多少視你save策略的配置),所以這是它最大的缺點,當業務量很大時,丟失的資料是很多的。
- 快照每次都是將記憶體中的全部資料dump到磁碟上面。勢必導致磁碟大量的IO開銷。資料量越大越明顯。
2. AOF持久化方式
- 說白了其實aof方式就是一個xxx.aof檔案儲存下了所以redis執行的寫命令。因此在redis啟動的時候、只需要按順序執行該檔案中儲存的全部寫命令就可以實現資料持久化。
- aof的實現分為 “命令追加”、“檔案寫入”、“檔案同步” 三個步驟。
- 命令追加:redis再執行一條寫命令後,會以協議格式寫入redis在記憶體中開闢的一塊aof_buf緩衝區的末尾。
- 命令寫入與同步:伺服器結束一個事件迴圈之前調用flushAppendOnlyFile函數、考慮是否將aof_buf內的內容寫入儲存到aof檔案裡面。此函數的行為由redis.conf中的appendfsync 的配置項來決定的。
- appendfsync的配置項的值說明如下:
//將aof_buf中的所有內容寫入並同步到aofappendfsync always//將aof_buf中所有內容寫入aof檔案、是否同步取決於上次同步到當前的時間是否超過1s。超過則同步。且同步是由一個專門的線程來完成的。appendfsync everysec//講所有aof_buf緩衝區中的內容寫入aof檔案。但是不進行同步操作。appendfsync no
AOF持久化相關的redis配置項除了上面的appendfsync以外還有以下幾個:
//決定是否開啟aof持久化。預設為no。redis預設使用rdb實現持久化。appendonly no//同rdb種的dir配置一樣、決定了aof檔案存放再哪裡。dir /usr/local/opt/redis///aof的檔案名稱appendfilename appendonly.aof//再aof檔案的大小超過上次重寫時aof檔案的大小的 百分之多少時會進行重寫。auto-aof-rewrite-percentage 100//當aof檔案至少達到多大時才進行重寫auto-aof-rewrite-min-size 64mb//重寫概念的簡單解釋如下://由於aof檔案中儲存各種寫命令、而會導致檔案迅速膨脹。其實很多寫命令可以整理為少數幾條寫命令而達到一樣的效果。重寫簡單講就是負責對冗長的寫命令進行整理。auto-aof-rewrite-min-size 限制大小就意味著比這個配置小的aof檔案沒有整理的必要。
以上僅僅為個人總結~,各位選擇性的吸收即可。
Redis安全與持久化(適合小白閱讀)