Redis關鍵配置詳解

Redis在我們的日常開發中已經應用得非常廣泛,下面整理一些在我們開發中使用頻率較高的配置,並作詳細地說明。

是否守護程序

daemonize no

預設情況下 redis 不是作為守護程序執行的,如果你想讓它在後臺執行,你就把它改成 yes。當redis作為守護程序執行的時候,它會寫一個 pid 到 /var/run/redis。pid 檔案裡面。

監聽埠號

port 6379

預設為 6379,如果你設為 0 ,redis 將不在 socket 上監聽任何客戶端連線。

TCP 監聽的最大容納數量

tcp-backlog 511

在高併發的環境下,你需要把這個值調高以避免客戶端連線緩慢的問題。 Linux 核心會一聲不響地把這個值縮小成 /proc/sys/net/core/somaxconn 對應的值,所以你要修改這兩個值才能達到你的預期。

網路介面監聽

# bind 192。168。1。100 10。0。0。1bind 127。0。0。1

預設情況下,redis 在 server 上所有有效的網路介面上監聽客戶端連線。 你如果只想讓它在一個網路介面上監聽,那你就繫結一個IP或者多個IP。 示例,多個IP用空格隔開:

指定日誌檔案的位置

logfile “”

設定資料庫的數目

databases 16

預設資料庫是 DB 0,你可以在每個連線上使用 select 命令選擇一個不同的資料庫, 但是 dbid 必須是一個介於 0 到 databasees - 1 之間的值。

存 DB 到磁碟

save 900 1save 300 10save 60 10000

格式:save <間隔時間(秒)> <寫入次數>,根據給定的時間間隔和寫入次數將資料儲存到磁碟

# 下面的例子的意思是:

# 900 秒內如果至少有 1 個 key 值變化,則儲存

# 300 秒內如果至少有 10 個 key 值變化,則儲存

# 60 秒內如果至少有 10000 個 key 值變化,則儲存

Rdb壓縮

rdbcompression yes

是否在 dump。rdb 資料庫的時候使用 LZF 壓縮字串,預設都設為 yes,如果你確實希望節省些 cpu ,你就設定它為 no,不過這個資料集可能就會比較大。

是否校驗rdb檔案

rdbchecksum yes

設定 dump 的檔案位置

dbfilename dump。rdb

主從複製

slaveof

主從複製。使用 slaveof 來讓一個 redis 例項成為另一個reids 例項的副本。注意這個只需要在 slave 上配置。

設定認證密碼

requirepass 123456

限制最大連線數

maxclients 10000

一旦達到最大限制,redis 將關閉所有的新連線,併發送一個‘max number of clients reached’的錯誤。

最大使用記憶體

maxmemory

最大記憶體策略,你有 5 個選擇。

volatile-lru ->remove the key with an expire set using an LRU algorithm 最近使用頻率少key

volatile-lru -> 使用 LRU 演算法移除包含過期設定的 key 。最近使用頻率少key

allkeys-lru -> remove any key accordingly to the LRU algorithm 最近使用頻率少key

allkeys-lru -> 根據 LRU 演算法移除所有的 key 。 最近使用頻率少key

volatile-random -> remove a random key with an expire set

allkeys-random -> remove a random key, any key

volatile-ttl -> remove the key with the nearest expire time (minor TTL) 將要過期的key

noeviction -> don‘t expire at all, just return an error on write operations

noeviction -> 不讓任何 key 過期,只是給寫入操作返回一個錯誤

開啟AOF持久化

appendonly yes

AOF預設是關閉的,需要修改redis。conf配置檔案來開啟AOF。