redis配置

所涉及到軟件版本

redis-2.2.11.tar.gz
google-perftools-1.7.tar.gz

將上述軟件包都放到/software/redis下

----------------------------------------------------------------
一 安裝 google-perftools
tar zxvf google-perftools-1.7.tar.gz
cd google-perftools-1.7
./configure --enable-frame-pointers
make
make install

添加環境變量
vi /etc/profile
LD_PRELOAD=/usr/local/lib
source /etc/profile
----------------------------------------------------------------
二 安裝redis
tar zxvf redis-2.2.11.tar.gz -C /usr/local/
mkdir /var/lib/redis
cd /usr/local/redis-2.2.11/
make USE_TCMALLOC=yes
cd src/
cp redis-benchmark redis-cli redis-server /usr/bin/
cp redis.conf /etc/
----------------------------------------------------------------
三 redis配置文件
參考
redis\software\redisacsm6341.conf \\生產環境acs項目主redis配置文件
redis\software\redisacss6341.conf \\生產環境acs項目從redis配置文件
----------------------------------------------------------------
四 啓動redis
redis-server /etc/redis.conf &
----------------------------------------------------------------
五 redis配置文件相關參數說明(★爲主要配置)

daemonize no //默認下,redis啓動不以守護進程的方式啓動,生產環境下建議將配置改爲yes★

pidfile /var/run/redis.pid //pid文件存放路徑★

port 6379 //配置redis端口,默認6379。可以將port配置爲0,此時不監聽tcp協議★

bind 127.0.0.1 //綁定ip。默認綁定所有本機ip,一般用在服務器多ip下,可以只監聽內網服務器ip,保證服務安全

unixsocket /tmp/redis.sock //sock文件

timeout 300 //客戶端超時時間,單位秒

loglevel verbose //log級別,支持四個級別,debug,notice,verbose,warning
logfile //log文件路徑
logfile stdout //log輸出到標準設備,logs不寫文件,輸出到空設備,/deb/null

save <seconds> <changes> //保存快照的頻率,在多長時間內執行一定數量的寫操作時,保存快照的頻率,可以設置多個條件。如果都註釋掉,則不做內存數據持久化。如果只是把redis只用作cache,不開啓持久化功能★
save 900 1

rdbcompression //是否使用壓縮
dbfilename //快照數據庫名稱
dir //數據庫存放路徑

slaveof <masterip> <masterport> //redis主從 做法 在從上填上主的IP和端口號 主上不用做任何設置★
masterauth <master-password> //主庫服務器口令,如果主服務器未打開requirepass,則不需要此項
slave-serve-stale-data yes //在master服務器掛掉或者同步失敗時,從服務器是否繼續提供服務。

requirepass foobared //設置redis服務密碼,如果開啓,則客戶端連接時需要 -a 指定密碼,否則操作會提示無權限

rename-command //命令改名,相當於linux alias,可以用改功能屏蔽一些危險命令

maxclients 128 //最大連接數;0 表示不限制

maxmemory <bytes> //最大使用內存(分配的內存),推薦生產環境下做相應調整,我們用的是隻用來做高速緩存,限制2G。默認情況下,redis會佔用可用的所有內存★

maxmemory-policy volatile-lru //過期策略,提供六種策略
volatile-lru //刪除過期和lru 的key(默認值)
allkeys-lru //刪除lru算法的key
volatile-random //隨機刪除即將過期key
allkeys->random //隨機刪除
volatile-ttl //刪除即將過期的
noeviction //永不過期,返回錯誤

appendonly //是否開啓appendonlylog,開啓的話每次寫操作會記一條log。相當於mysql的binlog;不同的是,每次redis啓動都會讀此文件構建完整數據。即使刪除rdb文件,數據也是安全的

appendfilename appendonly.aof //日誌文件的名稱,默認appendonly.aof
appendfsync //異步寫append file 的策略。類似mysql事物log寫方式。三種
appendfsync always //同步,每次寫都要flush到磁盤,安全,速度慢。
appendfsync everysec //每秒寫(默認值,推薦值)同mysql
appendfsync no //交給操作系統去做flush的動作
no-appendfsync-on-rewrite no //防止linux阻止長耗時io問題的

vm-enabled no // 虛擬內存開關
vm-swap-file /tmp/redis.swap //swap文件,不同redis swap文件不能共享。而且生產環境下,不建議放在tmp目錄。
vm-max-memory 0 //vm大小限制。0:不限制,建議60-80% 可用內存大小。
vm-page-size 32 //根據緩存內容大小調整,默認32字節。
vm-pages 134217728 //page數。每 8 page,會佔用1字節內存。vm-page-size * vm-pages 等於 swap 文件大小
vm-max-threads 4 //vm 最大io線程數。注意: 0 標誌禁止使用vm
----------------------------------------------------------------
四、優化redis
如果你決定把Redis用於生產環境,還要注意maxmemory選項,因爲Redis在啓動時會把所有數據加載到內存中,所以設定maxmemory相對安全
echo 1 > /proc/sys/vm/overcommit_memory
----------------------------------------------------------------
五 涉及其他關聯
1.內核參數調優
2.iptables防火牆策略(對前端web app開放內網redis端口)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章