Redis 配置檔案詳解
單位
redis 啟動的時候會去讀配置檔案 redis.conf
1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes
1gb => 1024*1024*1024 bytes
redis 裡面單位是不分大小寫的,例如,1GB 1Gb 1gB
表示的都是同一個意思
INCLUDES 包含
環境中使用的 redis.conf
可以包含其他的 redis.conf
,他們會整合成一個 配置檔案來提供使用
NETWORK 網路
bind 0.0.0.0
protected-mode yes
port 6379
bind
繫結地址,若繫結 127.0.0.1 是本地訪問,若需要遠端訪問,可以繫結一個真實的 ip 地址
protected-mode
保護模式是否開啟,預設是開啟
port
埠設定,預設埠是 6379,我們也可以修改成其他的可用埠,例如叢集的時候就會修改到埠
GENERAL 通用
通用配置,常用的有
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
daemonize
是否以守護程式的方式執行,預設是 no,我們需要的話可以修改成 yes
pidfile
以後臺方式執行 redis ,我們就需要制定一個 pid 檔案
loglevel
日誌等級
291 # Specify the server verbosity level.
292 # This can be one of:
293 # debug (a lot of information, useful for development/testing)
294 # verbose (many rarely useful info, but not a mess like the debug level)
295 # notice (moderately verbose, what you want in production probably)
296 # warning (only very important / critical messages are logged)
和我們專案中用到的一致:
- debug
用於開發和測試的除錯資訊
- verbose
罕見有用的資訊
- notice
提示資訊,期望在生產環境中看到的
- warning
告警資訊,重要的資訊會被列印到日誌中
logfile
指定 redis 日誌檔案路徑
databases
redis 資料庫, 預設是 16 個
always-show-logo
是否總是顯示 reids logo ,就是下面這個 logo
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 29303
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
SNAPSHOTTING 快照
快照,這裡也就是 redis 的持久化,在規定的時間裡面,執行了多少次操作,就會持久化到檔案中
redis 的持久化有兩種
- RDB
- AOF
redis 是記憶體資料庫,程式當機或者斷電都會導致資料丟失,因此 redis 就有這樣的持久化策略
# save 3600 1
# save 300 100
# save 60 10000
- save 3600 1
如果 3600 s 內 redis 發生了 1 次操作, 那麼就會做資料持久化
- save 300 100
如果 300s 內 redis 發生了 100 次操作, 那麼就會做資料持久化
- save 60 10000
如果 60s 內 redis 發生了 10000 次操作, 那麼就會做資料持久化
後面我們們詳細寫到持久化的時候,再來細說和實際測試持久化的事情
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dir ./
stop-writes-on-bgsave-error
redis 持久化出錯是否繼續執行 redis 程式,預設是開啟的,持久化錯誤不能影響 redis 程式的執行,需要正常進行下去
rdbcompression
持久化的檔案是否需要壓縮,預設是開啟的,這個功能會比較消耗效能
rdbchecksum
儲存 rdb 持久化檔案的時候,會進行錯誤檢查校驗
dir
rdb 檔案的儲存目錄
REPLICATION 主從複製
主從複製的配置在這個位置
詳細的後續寫到主動複製的時候詳細的寫
SECURITY 安全
redis 的安全相關配置檔案,我們們來看看密碼的事情
# The requirepass is not compatable with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.
#
# requirepass foobared
redis 預設是不設定密碼的,但是我們為了遠端訪問安全,必須要設定密碼
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 888888
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "888888"
退出 redis 客戶端,再次連線 redis-server
root@iZuf66y3tuzn4wp3h02t7pZ:~# redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
對 redis 設定了密碼之後,退出 redis 客戶端,再次連線 redis-server,發現 redis 報錯許可權不足,此時我們使用 redis-client 連線 redis-server 就需要密碼了
127.0.0.1:6379> auth 888888
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "888888"
CLIENTS 客戶端
限制客戶端連線數
maxclients 10000
maxclients
redis 限制客戶端連線數 預設是 10000 個,這個數字我們也可以修改成我們所期望的
MEMORY MANAGEMENT 記憶體管理
maxmemory <bytes>
maxmemory-policy noeviction
maxmemory
redis 配置的最大記憶體容量,單位是位元組
maxmemory-policy
redis 記憶體達到上限之後的處理策略是什麼樣的,有如下幾個選型:
- noeviction
永不過期,返回錯誤
- volatile-ttl
刪除即將過期的
- allkeys-random
隨機刪除 key
- volatile-random
隨機刪除即將過期的 key
- allkeys-lru
刪除 lru 演算法的 key
- volatile-lru
只對設定了過期時間的 key 進行 LRU
LRU(Least recently used,最近最少使用)
APPEND ONLY MODE 追加模式(aof 配置)
APPEND ONLY MODE 用於 AOF 的持久化
appendonly no
appendfilename "appendonly.aof"
# appendfsync always
appendfsync everysec
# appendfsync no
appendonly
預設是關閉的,redis 預設使用的是 rdb 持久化模式,基本是夠用的
appendfilename
aof 持久化 檔案的名字
appendfsync
持久化同步策略
- always 每次修改都會同步,消耗效能
- everysec 每秒執行一次同步,異常情況下會丟失上 1 s 的資料
- no 不主動同步資料,系統會自動同步,這種方式速度最快,但是丟失資料的機率大
對於 redis 配置檔案常用常改的位置都給大家分享到了,需要多多在實際學習和工作中多多應用,熟能生巧
參考資料:
歡迎點贊,關注,收藏
朋友們,你的支援和鼓勵,是我堅持分享,提高質量的動力
好了,本次就到這裡
技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。
我是小魔童哪吒,歡迎點贊關注收藏,下次見~