Redis的設定檔位於Redis安裝目錄下,檔案名稱為 redis.conf(Windows名為redis.windows.conf)。
你可以透過CONFIG指令查看或設定設定項。
Redis CONFIG 指令格式如下:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
實例:
redis 127.0.0.1:6379> CONFIG GET loglevel "loglevel" "notice"
使用 * 號碼取得所有設定項目:
##實例:redis 127.0.0.1:6379> CONFIG GET * "dbfilename" "dump.rdb" "requirepass" "" "masterauth" "" "unixsocket" "" "logfile" "" "pidfile" "/var/run/redis.pid" "maxmemory" "0" "maxmemory-samples" "3" "timeout" "0" "tcp-keepalive" "0" "auto-aof-rewrite-percentage" "100" "auto-aof-rewrite-min-size" "67108864" "hash-max-ziplist-entries" "512" "hash-max-ziplist-value" "64" "list-max-ziplist-entries" "512" "list-max-ziplist-value" "64" "set-max-intset-entries" "512" "zset-max-ziplist-entries" "128" "zset-max-ziplist-value" "64" "hll-sparse-max-bytes" "3000" "lua-time-limit" "5000" "slowlog-log-slower-than" "10000" "latency-monitor-threshold" "0" "slowlog-max-len" "128" "port" "6379" "tcp-backlog" "511" "databases" "16" "repl-ping-slave-period" "10" "repl-timeout" "60" "repl-backlog-size" "1048576" "repl-backlog-ttl" "3600" "maxclients" "4064" "watchdog-period" "0" "slave-priority" "100" "min-slaves-to-write" "0" "min-slaves-max-lag" "10" "hz" "10" "no-appendfsync-on-rewrite" "no" "slave-serve-stale-data" "yes" "slave-read-only" "yes" "stop-writes-on-bgsave-error" "yes" "daemonize" "no" "rdbcompression" "yes" "rdbchecksum" "yes" "activerehashing" "yes" "repl-disable-tcp-nodelay" "no" "aof-rewrite-incremental-fsync" "yes" "appendonly" "no" "dir" "/home/deepak/Downloads/redis-2.8.13/src" "maxmemory-policy" "volatile-lru" "appendfsync" "everysec" "save" "3600 1 300 100 60 10000" "loglevel" "notice" "client-output-buffer-limit" "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" "unixsocketperm" "0" "slaveof" "" "notify-keyspace-events" "" "bind" ""編輯設定你可以透過修改redis.conf檔或使用CONFIG set指令來修改設定。 語法CONFIG SET 指令基本語法:
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE實例:
redis 127.0.0.1:6379> CONFIG SET loglevel "notice" OK redis 127.0.0.1:6379> CONFIG GET loglevel "loglevel" "notice"redis.conf 設定項說明如下:1、daemonize no
Redis 預設不是以守護程式的方式執行,可以透過此設定項修改,使用yes 啟用守護程式(Windows 不支援守護執行緒的設定為no )
當Redis 以守護程式方式運作時,Redis 預設會把pid 寫入/var/run/redis.pid 文件,可以透過pidfile 指定
指定Redis 監聽端口,預設端口為6379,作者在自己的一篇博文中解釋了為什麼選用6379 作為默認端口,因為6379 在手機按鍵上MERZ 對應的號碼,而MERZ 取自意大利歌女Alessia Merz 的名字
綁定的主機位址
當客戶閒置多久後關閉連接,如果指定為0,表示關閉此功能
指定日誌記錄級別,Redis 總共支援四個等級:debug、verbose、notice、warning,預設為notice
日誌記錄方式,預設為標準輸出,如果配置Redis 為守護程序方式運行,而這裡又配置為日誌記錄方式為標準輸出,則日誌將會傳送給/dev/null
設定資料庫的數量,預設資料庫為0,可以使用SELECT 指令在連線上指定資料庫id
指定儲存至本機資料庫時是否壓縮數據,預設為yes,Redis 採用LZF 壓縮,如果為了節省CPU 時間,可以關閉該選項,但會導致資料庫檔案變的巨大
#指定本地資料庫檔案名,預設值為dump.rdb
指定本機資料庫存放目錄
#13、slaveof 885bfb4ff5ca07b2526cbc210fcbc359 bee3afa7d8a7e90f2cbebf88c3647012
設定當本機為slav 服務時,設定master 服務的IP 位址及端口,在Redis 啟動時,它會自動從master 進行資料同步
#14、masterauth e89d8186dfe17d1f70030d3fa2b7ff66
當master服務設定了密碼保護時,slav服務連線master的密碼
15、requirepass foobared
設定Redis連線密碼,如果設定了連線密碼,則客戶端在連線Redis 時需要透過AUTH cb1ebc435675187bdcfb539b370c2e37指令提供密碼,預設關閉
16、maxclients 128
設定相同時間最大客戶端連線數,預設無限制,Redis 可以同時開啟的客戶端連線數為Redis 程式可以開啟的最大檔案描述符數,如果設定maxclients 0,表示不作限制。當客戶端連線數到達限制時,Redis 會關閉新的連線並向客戶端回傳max number of clients reached 錯誤訊息
17、maxmemory 4d5e782727adce28d9e975bcb1fbc12c
指定Redis在啟動時會把資料載入到記憶體中,達到最大記憶體後,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理後,仍然到達最大記憶體設置,將無法再進行寫入操作,但仍可進行讀取操作。 Redis 新的vm 機制,會把Key 存放內存,Value 會存放在swap 區
18、appendonly no
指定是否在每次更新操作後進行日誌記錄,Redis 在預設情況下是異步的把資料寫入磁碟,如果不開啟,可能會在斷電時導致一段時間內的資料遺失。因為 redis 本身同步資料檔是按上面 save 條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。預設為no
19、appendfilename appendonly.aof
指定更新日誌檔案名,預設為appendonly.aof
20、appendfsync everysec
no:表示等作業系統進行資料快取同步到磁碟(快)always:表示每次更新操作後手動呼叫fsync() 將資料寫到磁碟(慢,安全)everysec:表示每秒同步一次(折中,預設值)
21、vm-enabled no
指定是否啟用虛擬記憶體機制,預設值為no,簡單的介紹一下,VM 機制將資料分頁存放,由Redis 將存取量較少的頁即冷資料swap 到磁碟上,訪問多的頁面由磁碟自動換出到記憶體中(在後面的文章我會仔細分析Redis 的VM 機制)
22、vm-swap-file /tmp/redis.swap
虛擬記憶體檔案路徑,預設值為/tmp/redis.swap,不可多個Redis 實例共享
23、vm-max-memory 0
將所有大於vm-max-memory 的資料存入虛擬內存,無論vm-max-memory 設定多小,所有索引資料都是內存儲存的(Redis 的索引資料就是keys),也就是說,當vm-max-memory 設置為0 的時候,其實是所有value 都存在於磁碟。預設值為0
24、vm-page-size 32
Redis swap 檔案分成了許多的page,一個物件可以儲存在多個page 上面,但一個page 上不能被多個物件共享,vm-page-size 是要根據儲存的資料大小來設定的,作者建議如果儲存很多小對象,page 大小最好設定為32 或64bytes;如果儲存很大大對象,則可以使用更大的page,如果不確定,就使用預設值
25、vm-pages 134217728
設定swap 檔案中的page 數量,由於頁表(一種表示頁面空閒或使用的bitmap)是在放在內存中的,,在磁碟上每8 個pages 將消耗1byte 的記憶體。
26、vm-max-threads 4
設定存取swap檔案的執行緒數,最好不要超過機器的核數,如果設定為0,那麼所有對swap檔案的操作都是串行的,可能會造成比較長時間的延遲。預設值為4
27、glueoutputbuf yes
設定在向客戶端應答時,是否將較小的包合併為一個包發送,預設為開啟
#28、hash- max-zipmap-entries 64hash-max-zipmap-value 512
指定在超過一定的數量或最大的元素超過某一臨界值時,採用一種特殊的雜湊演算法
29、activerehashing yes
指定是否啟動重置哈希,預設為開啟(後面在介紹Redis 的哈希演算法時具體介紹)
30、include /path/to/local.conf
指定包含其它的配置文件,可以在同一主機上多個Redis實例之間使用同一份配置文件,而同時各個實例又擁有自己的特定配置文件
更多Redis相關知識,請訪問 Redis使用教學專欄!
以上是redis怎麼配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!