首頁  >  文章  >  資料庫  >  redis怎麼配置

redis怎麼配置

尚
原創
2019-07-05 14:57:094574瀏覽

redis怎麼配置

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 )    

2、 pidfile /var/run/redis.pid

當Redis 以守護程式方式運作時,Redis 預設會把pid 寫入/var/run/redis.pid 文件,可以透過pidfile 指定   

#3、 port 6379

指定Redis 監聽端口,預設端口為6379,作者在自己的一篇博文中解釋了為什麼選用6379 作為默認端口,因為6379 在手機按鍵上MERZ 對應的號碼,而MERZ 取自意大利歌女Alessia Merz 的名字   

4、bind 127.0.0.1

綁定的主機位址   

5、timeout 300

當客戶閒置多久後關閉連接,如果指定為0,表示關閉此功能   

6、loglevel notice

指定日誌記錄級別,Redis 總共支援四個等級:debug、verbose、notice、warning,預設為notice    

7、 logfile stdout

日誌記錄方式,預設為標準輸出,如果配置Redis 為守護程序方式運行,而這裡又配置為日誌記錄方式為標準輸出,則日誌將會傳送給/dev/null    

8、databases 16

設定資料庫的數量,預設資料庫為0,可以使用SELECT 指令在連線上指定資料庫id    

9、save 0e72eeb93e8222d25f37582edca0e1bc 4dea9aacc34f4f894db964a9b08d412e


#Redis 預設設定檔中提供了三個條件:

save 900 1

save 300 10

save 60 10000

# 900 秒(15 分鐘)內有1 個更改,300 秒(5 分鐘)內有10 個更改以及60 秒內有10000 個更改。

指定在多長時間內,有多少次更新操作,就將資料同步到資料文件,可以多個條件配合    

10、rdbcompression yes

指定儲存至本機資料庫時是否壓縮數據,預設為yes,Redis 採用LZF 壓縮,如果為了節省CPU 時間,可以關閉該選項,但會導致資料庫檔案變的巨大   

11、dbfilename dump.rdb

#指定本地資料庫檔案名,預設值為dump.rdb    

12、dir ./

指定本機資料庫存放目錄   

13、slaveof 885bfb4ff5ca07b2526cbc210fcbc359 bee3afa7d8a7e90f2cbebf88c3647012

#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

###20、appendfsync everysec##########指定更新日誌條件,共有3 個可選值:###

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn