跳到主內容

【Redis】設定相關

/etc/redis.conf

or

/usr/local/etc/redis/redis.conf

  • 開放外部連線

# 只支持本地
bind 127.0.0.1 -::1
protected-mode yes

# 要支援遠端存取註解 bind 127.0.0.1 -::1 
# protected-mode no
# bind 127.0.0.1 -::1
protected-mode no

其他設定

# 未完成三向交握+已完成三向交握上限
tcp-backlog 511

# Close the connection after a client is idle for N seconds (0 to disable)
# 0: 永不過期
timeout 0

# 檢測連線存在的間隔時間
tcp-keepalive 300

# 使用daemon啟動
daemonize yes

# pid檔案位置
# 如果指定了pid文件,Redis在啟動時會將其寫入指定位置,並在退出時刪除它。
# 當服務器以非守護模式運行時,如果在配置中未指定pid文件,則不會創建pid文件。當服務器以守護模式運行時,即使未指定,也將使用pid文件,默認為 "/var/run/redis.pid"。
# 創建pid文件是盡力而為的:如果Redis無法創建它,不會發生任何壞事,服務器將正常啟動和運行。
# 請注意,在現代Linux系統上,應改用 "/run/redis.pid",因為這更符合規範。
pidfile /var/run/redis_6379.pid

# log 級別 
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice

# 設定db數量
databases 16

# 設置密碼
# requirepass {密碼}
requirepass foobared

# 使用命令臨時設定密碼(服務重啟失效)
127.0.0.1:6379>config set requirepass "123456"
# 登入
127.0.0.1:6379>auth 123456

# 最大連接數(預設無)
maxclients 10000
# 最大記憶體使用量(預設無)
maxmemory <bytes>

持久化(快照)(RDB)

# 持久化(快照)(REB)
# 有可能最後一次資料丟失
# 寫入檔名
dbfilename dump.rdb
# 寫入目錄(啟動redis命令當前目錄)
dir ./
# 快照設定

# 3600秒內有1個key異動
# save 3600 1
# 300秒內有100個key異動
# save 300 100
# 60秒內有10000個key異動
# save 60 10000

# Redis 無法寫入檔案,關閉寫入操作
stop-writes-on-bgsave-error yes
# 文件進行壓縮
rdbcompression yes
# 文件檢查(影響10%效能)
rdbchecksum yes

# 如何恢復 :
# 關閉 redis 將原先dump.rdb 放回執行目錄下,啟動 redis,會自動載入資料

持久化(AOF)

使用log方式存放,只記錄寫的指令,不紀錄讀

RDB & AOF 同時開啟,只會載入AOF資料

# 開啟AOF模式
# 預設 no
appendonly yes
# 檔案名稱
appendfilename "appendonly.aof"
# 目錄名稱(上層預設為啟動目錄)
appenddirname "appendonlydir"
# aof 同步頻率
# appendfsync always|everysec|no
# always:  即時同步(每次寫入同步)
# everysec:每秒同步
# no: 同步時機交給作業系統
# http://antirez.com/post/redis-persistence-demystified.html
appendfsync everysec

# no-appendfsync-on-rewrite 預設no
# 重寫壓縮指令 將多筆設定令重寫成一筆指令
# set A1 1
# set B1 3
# set A1 1 B1 3 => 壓縮重寫
no-appendfsync-on-rewrite yes
# 觸發比例
auto-aof-rewrite-percentage 100
# 觸發檔案大小
auto-aof-rewrite-min-size 64mb

# 如何恢復 :
# 關閉 redis 將原先appendonly.aof 放回執行目錄下,啟動 redis,會自動載入資料

# aof 檔案損壞
# /usr/local/bin/redis-check-aof --fix appendonly.aof
# 備份該檔
# 重啟服務
RDB & AOF 使用時機
  • 官方推薦 都開
  • 資料不嚴謹,可單獨使用RDB
  • 不建議單獨使用AOF,可能有BUG
  • Redis 只做cache 用,可都不開

sentinel config

sentinel monitor mymaster 192.168.1.1 6379 2
sentinel auth-pass mymaster 12345678

 

https://hsiehjenhsuan.medium.com/spring-boot-%E4%BD%BF%E7%94%A8-lettuce-%E8%A8%AD%E5%AE%9A%E5%A4%9A%E5%80%8B-redis-%E9%80%A3%E7%B7%9A-55307dc6a480