您好,登錄后才能下訂單哦!
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 <seconds> <changes>
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 <masterip> <masterport>
設置當本機為 slav 服務時,設置 master 服務的 IP 地址及端口,在 Redis 啟動時,它會自動從 master 進行數據同步
14、masterauth <master-password>
當master服務設置了密碼保護時,slav服務連接master的密碼
15、requirepass foobared
設置Redis連接密碼,如果配置了連接密碼,客戶端在連接 Redis 時需要通過 AUTH <password> 命令提供密碼,默認關閉
16、maxclients 128
設置同一時間最大客戶端連接數,默認無限制,Redis 可以同時打開的客戶端連接數為 Redis 進程可以打開的最大文件描述符數,如果設置 maxclients 0,表示不作限制。當客戶端連接數到達限制時,Redis 會關閉新的連接并向客戶端返回 max number of clients reached 錯誤信息
17、maxmemory <bytes>
指定Redis最大內存限制,Redis在啟動時會把數據加載到內存中,達到最大內存后,Redis會先嘗試清除已到期或即將到期的 Key,當此方法處理 后,仍然到達最大內存設置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis 新的 vm 機制,會把 Key 存放內存,Value 會存放在 swap 區
18、appendonly no
指定是否在每次更新操作后進行日志記錄,Redis 在默認情況下是異步的把數據寫入磁盤,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。因為 redis 本身同步數據文件是按上面 save 條件來同步的,所以有的數據會在一段時間內只存在于內存中。默認為 no
19、appendfilename appendonly.aof
指定更新日志文件名,默認為 appendonly.aof
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如何配置大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。