所謂通用配置,就是全部模式都須要修改的配置。redis的配置文件以「#####xxx#####」分隔了不一樣的功能區。咱們以redis.conf文件做爲模板進行修改配置。下面只是列出了主要須要修改的一些配置信息。注意:這裏不涉及「#### REPLICATION ######」(slave設置)和「##### REDIS CLUSTER #######」(cluster)的配置。完成這些配置後,咱們就能夠啓動一個單節點的redis實例了。
# 配置綁定的IP地址
bind 192.168.235.121
# 監聽的端口號
port 6379
# 默認爲600秒,當client 端idle時間超過600秒則斷開鏈接
timeout 600
tcp-keepalive 300
# 若是併發鏈接量很大,建議調大這個數值,可是這個值小於等於/proc/sys/net/core/somaxconn 裏面的值。
tcp-backlog 1000
# daemonize 要設置成yes。表示能夠以守護進程方式啓動
daemonize yes
# pid文件路徑
pidfile 「~/apps/redis/var/redis-6379.pid」
# 日誌文件路徑
logfile 「~/apps/redis/logs/redis-6379.log」
# SNAPSHOTTING,若是數據不是特別重要,能夠增大bgsave的時間間隔,以提高效率,甚至能夠關閉到磁盤的存儲,save ""。具體的解釋能夠看文章最後的解釋
save 900 1
save 300 10
save 60 10000
# 若是數據不是特別重要,能夠設置爲no,這樣即便出現disk 故障,redis仍然能夠提供讀寫服務,設置爲yes,disk故障,redis只能提供讀服務。
stop-writes-on-bgsave-error yes
# 若是網絡不穩定的狀況下,爲了不全量複製,能夠根據實際狀況調大repl-backlog-size
# backlog(複製積壓緩存區)保存了最近一段時間的寫操做。
repl-backlog-size 1mb
# rdb 文件路徑
dbfilename "dump-6379.rdb"
dir "~/apps/redis/data"
# 設置redis 實例的密碼
requirepass "xxxxxx"
# 設置最大客戶端鏈接數,爲了保證性能,最高最好不要超過5000
maxclients 4096
# 設置實例最大內存限制,爲保證集羣穩定,建議設置
maxmemory <bytes>
# APPEND ONLY MODE。會記錄全部的redis操做,路徑同rdb
appendonly yes
appendfilename "appendonly-6379.aof"
# 能夠適度調大aof rewrite的條件,避免過於頻繁的rewrite。或者直接關閉自動重寫(設置auto-aof-rewrite-percentage爲0),而後設置定時任務進行重寫
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
注:關於rdb和aof的說明
1.rdb是內存數據的持久化,aof記錄的是全部的操做,兩者均可以用來恢復redis數據庫。其中,因爲rdb寫磁盤是根據save配置設置的,可能會丟失部分數據,尤爲是在使用flushdb/flushall的時候,能夠確定因爲自動bgsave的緣由數據基本不可恢復。aof也能夠用來恢復數據庫,只是稍微慢一點,但不會丟數據,由於其記錄的是每一條命令,固然這有個前提,就是執行flushdb/flushall命令以後,沒有執行bgrewriteaof操做,不然同樣不能夠恢復。通常數據不是特別緊要的狀況下,我會關閉rdb,開啓aof,但不設置aof的自動重寫,而是在凌晨經過crontab手動執行bgsave和bgrewriteaof操做。redis啓動時默認先使用aof恢復數據。
2.aof重寫,不是操做aof文件,而是讀取內存中的數據生成一個新的aof文件,替換原來的文件。