1. Redis.conf 配置參數(shù):
#是否作為守護進程運行
daemonize yes
#如以后臺進程運行,則需指定一個pid,默認為/var/run/redis.pid
pidfile redis.pid
#綁定主機IP,默認值為127.0.0.1
#bind 127.0.0.1
#Redis默認監(jiān)聽端口
port 6379
#客戶端閑置多少秒后,斷開連接,默認為300(秒)
timeout 300
#日志記錄等級,有4個可選值,debug,verbose(默認值),notice,warning
loglevel verbose
#指定日志輸出的文件名,默認值為stdout,也可設為/dev/null屏蔽日志
logfile stdout
#可用數(shù)據(jù)庫數(shù),默認值為16,默認數(shù)據(jù)庫為0
databases 16
#保存數(shù)據(jù)到disk的策略
#當有一條Keys數(shù)據(jù)被改變是,900秒刷新到disk一次
save 900 1
#當有10條Keys數(shù)據(jù)被改變時,300秒刷新到disk一次
save 300 10
#當有1w條keys數(shù)據(jù)被改變時,60秒刷新到disk一次
save 60 10000
#當dump .rdb數(shù)據(jù)庫的時候是否壓縮數(shù)據(jù)對象
rdbcompression yes
#本地數(shù)據(jù)庫文件名,默認值為dump.rdb
dbfilename dump.rdb
#本地數(shù)據(jù)庫存放路徑,默認值為 ./
dir /var/lib/redis/
########### Replication #####################
#Redis的復制配置
# slaveof masterip> masterport> 當本機為從服務時,設置主服務的IP及端口
# masterauth master-password> 當本機為從服務時,設置主服務的連接密碼
#連接密碼
# requirepass foobared
#最大客戶端連接數(shù),默認不限制
# maxclients 128
#最大內(nèi)存使用設置,達到最大內(nèi)存設置后,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理后,任到達最大內(nèi)存設置,將無法再進行寫入操作。
# maxmemory bytes>
#是否在每次更新操作后進行日志記錄,如果不開啟,可能會在斷電時導致一段時間內(nèi)的數(shù)據(jù)丟失。因為redis本身同步數(shù)據(jù)文件是按上面save條件來同步的,所以有的數(shù)據(jù)會在一段時間內(nèi)只存在于內(nèi)存中。默認值為no
appendonly no
#更新日志文件名,默認值為appendonly.aof
#appendfilename
#更新日志條件,共有3個可選值。no表示等操作系統(tǒng)進行數(shù)據(jù)緩存同步到磁盤,always表示每次更新操作后手動調(diào)用fsync()將數(shù)據(jù)寫到磁盤,everysec表示每秒同步一次(默認值)。
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#是否開啟VM功能,默認值為no
vm-enabled no
# vm-enabled yes
#虛擬內(nèi)存文件路徑,默認值為/tmp/redis.swap,不可多個Redis實例共享
vm-swap-file /tmp/redis.swap
# 將所有大于vm-max-memory的數(shù)據(jù)存入虛擬內(nèi)存,無論vm-max-memory設置多小,所有索引數(shù)據(jù)都是內(nèi)存存儲的 (Redis的索引數(shù)據(jù)就是keys),也就是說,當vm-max-memory設置為0的時候,其實是所有value都存在于磁盤。默認值為0。
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置Hash表
activerehashing yes
注意:Redis官方文檔對VM的使用提出了一些建議:
當你的key很小而value很大時,使用VM的效果會比較好.因為這樣節(jié)約的內(nèi)存比較大.
當你的key不小時,可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個新的value.
最好使用Linux ext3 等對稀疏文件支持比較好的文件系統(tǒng)保存你的swap文件.
vm-max-threads這個參數(shù),可以設置訪問swap文件的線程數(shù),設置最好不要超過機器的核數(shù).如果設置為0,那么所有對swap文件的操作都是串行的.可能會造成比較長時間的延遲,但是對數(shù)據(jù)完整性有很好的保證.
2. 調(diào)整系統(tǒng)內(nèi)核參數(shù)
如果內(nèi)存情況比較緊張的話,需要設定內(nèi)核參數(shù):
echo 1 > /proc/sys/vm/overcommit_memory
這里說一下這個配置的含義:/proc/sys/vm/overcommit_memory
該文件指定了內(nèi)核針對內(nèi)存分配的策略,其值可以是0、1、2。
0,表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應用進程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請允許;否則,內(nèi)存申請失敗,并把錯誤返回給應用進程。
1,表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當前的內(nèi)存狀態(tài)如何。
2,表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存
Redis 在dump數(shù)據(jù)的時候,會fork出一個子進程,理論上child進程所占用的內(nèi)存和parent是一樣的,比如parent占用的內(nèi)存為 8G,這個時候也要同樣分配8G的內(nèi)存給child, 如果內(nèi)存無法負擔,往往會造成redis服務器的down機或者IO負載過高,效率下降。所以這里比較優(yōu)化的內(nèi)存分配策略應該設置為 1(表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當前的內(nèi)存狀態(tài)如何)
一、 運行服務
# redis-server /etc/redis/redis.conf 開啟
# redis-cli shutdown 關(guān)閉
二、 測試
1) 可在后臺啟動redis服務后,用redis-benchmark命令測試
2) 通過redis-cli命令實際操作測試
三、 保存/備份
數(shù)據(jù)備份可以通過定期備份該文件實現(xiàn)。
因為redis是異步寫入磁盤的,如果要讓內(nèi)存中的數(shù)據(jù)馬上寫入硬盤可以執(zhí)行如下命令:
redis-cli save 或者 redis-cli -p 6380 save(指定端口)
注意,以上部署操作需要具備一定的權(quán)限,比如復制和設定內(nèi)核參數(shù)等。
執(zhí)行redis-benchmark命令時也會將內(nèi)存數(shù)據(jù)寫入硬盤。
四、 開啟端口號
1) 打開/etc/sysconfig/iptables,
2) 在-【A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT】后面,加上 【-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT】 //這里的6379是Redis默認端口號
3) 保存,重啟防火墻:/etc/init.d/iptables restart
以上這篇詳談redis優(yōu)化配置和redis.conf說明(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- redis常用命令、常見錯誤、配置技巧等分享
- CentOS 6.6下Redis安裝配置記錄
- CentOS Linux系統(tǒng)下安裝Redis過程和配置參數(shù)說明
- Redis數(shù)據(jù)庫的安裝配置方法
- redis配置文件redis.conf中文版(基于2.4)
- Redis配置文件詳解
- Spring Boot Redis 集成配置詳解
- 詳解springboot配置多個redis連接
- Python的Flask框架使用Redis做數(shù)據(jù)緩存的配置方法
- redis安裝、配置、使用和redis php擴展安裝教程
- CentOS系統(tǒng)下Redis安裝和自啟動配置的步驟
- redis配置認證密碼的方法
- 配置Spring4.0注解Cache+Redis緩存的用法
- 詳解spring boot starter redis配置文件
- 詳解Centos7下配置Redis并開機自啟動
- Centos下配置Redis開機啟動腳本
- Windows下Redis安裝配置教程
- Redis3.2.6配置文件詳細中文說明