redis是一個開源的、使用C語言編寫的、支援網絡互動的、可基于記憶體也可持久化的Key-Value資料庫。 redis的官網位址,非常好記,是redis.io。(特意查了一下,域名字尾io屬于國家域名,是british Indian Ocean territory,即英屬印度洋領地)目前,Vmware在資助着redis項目的開發和維護。
<code>daemonize no</code>預設情況下redis 不是以守護程序的模式運作。
<code>pidfile /var/run/redis.pid</code>在守護程序模式下,pid程序号檔案路徑的存儲位置
<code>port 6379</code>監聽的端口号,設定為0的話,redis不會對tcp 連接配接進行監聽;
<code>bind 127.0.0.1</code>綁定本機單一網卡擴充卡,預設是本機的所有網絡擴充卡
<code>unixsocket /tmp/redis.sock</code>
<code>unixsocketperm 755</code>預設情況下 redis 是不建立unix socket連接配接的;
<code>timeout 0</code>用戶端空閑n秒後斷開連接配接; 0 表示不主動斷開連接配接;
<code>tcp-keepalive 0</code>
<code>loglevel notice</code>記錄日志的級别
debug:包含所有資訊,主要用于開發環境中;
- verbose:相比debug 隻顯示有用資訊;
- notice: 生産環境推薦配置
- warning: 隻記錄重要、錯誤資訊和嚴重資訊;
<code>logfile stdout</code>日志檔案記錄位置, 如果采用daemonize 守護程序的模式,且參數值為stdout,那logs會被重定向到/dev/null
<code>syslog-enabled no</code>将日志資訊記錄到 syslog 檔案中。預設不允許;
<code>syslog-facility local0</code> (必須是 LOCAL 0 -- LOCAL 7)作為syslog 的日志裝置
<code>databases 16</code>資料庫的數量, select dbid ; dbid 取值範圍between 0 and 'databases'-1
将記憶體中的資料刷寫到磁盤上
<code>save <seconds> <changes> save 900 1 save 300 10 save 60 10000</code>
符合以上條件的就重新整理磁盤上:
900秒(15分鐘)之後,且至少1次變更
300秒(5分鐘)之後,且至少10次變更
60秒之後,且至少10000次變更
(我一直懷疑資料會丢失多少?丢失幾秒的?)
不刷寫到磁盤上的話,直接 save "" 就可以。
<code>stop-writes-on-bgsave-error yes</code>預設情況下,如果在RDB snapshots持久化過程中出現問題,設定該參數後,Redis是不允許使用者進行任何更新操作(set...)。避免人為強制停止redis 快照,如果采用良好的監控系統,那麼可以将該參數設定為 no
可能出現的錯誤資訊:
<code>rdbcompression yes</code> 在導出.RDB資料庫檔案的時候采用LZF壓縮字元串和對象。想節省一些CPU資源可以設定為no,但資料量可能會很大。
<code>rdbchecksum yes</code>RDB快照制作過程中會在檔案的末尾寫入 crc64的校驗值。這樣可能很好的保證資料的正确性。代價是在 saving 或者 loading RDB file 的時候,性能下降10%(待測試);如果僅用該選項的話,檔案末尾的校驗值會用0代替,這樣在loading data 的時候,會跳過check。
<code>dbfilename dump.rdb</code>快照檔案名
<code>dir ./</code>DB工作目錄,必須是目錄名,dumpfile存儲的位置。