Redis安全與持久化(適合小白閱讀)

來源:互聯網
上載者:User

標籤:

前言: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方式)

  • save為同步的方式儲存記憶體中的資料快照到磁碟。由於redis是單進程的。因此這種方式阻塞了redis client對redis的訪問。
  • bgsave方式、redis會fork出一個子進程來處理快照儲存。
  • RDB持久化方式都是將記憶體資料完整的寫入磁碟上一個臨時RDB檔案中。通常為 dump.rdb檔案(儲存著位元據),使用locate dump.rdb找到這個檔案可以使用以下命令查看檔案內容。或者通過redis.conf中的dir xxxxx配置也可以查看你的rdb檔案儲存位置。
  • localhost:redis miaoshiqian [master] $ od -c dump.rdb0000000    R   E   D   I   S   0   0   0   6 376  \0  \0 004   m   i   a0000020    o  \a   s   h   i   q   i   a   n 377   C 355   N   z 264 2260000040  243   a                                                        0000042
  • 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安全與持久化(適合小白閱讀)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.