主頁(yè) > 知識(shí)庫(kù) > 詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)

詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)

熱門(mén)標(biāo)簽:最簡(jiǎn)單的百度地圖標(biāo)注 玄武湖地圖標(biāo)注 太原營(yíng)銷(xiāo)外呼系統(tǒng) 百度商家地圖標(biāo)注怎么做 西藏教育智能外呼系統(tǒng)價(jià)格 地圖標(biāo)注費(fèi)用 小紅書(shū)怎么地圖標(biāo)注店 地圖標(biāo)注如何即時(shí)生效 竹間科技AI電銷(xiāo)機(jī)器人

1. Redis.conf 配置參數(shù):

#是否作為守護(hù)進(jìn)程運(yùn)行

daemonize yes

#如以后臺(tái)進(jìn)程運(yùn)行,則需指定一個(gè)pid,默認(rèn)為/var/run/redis.pid

pidfile redis.pid

#綁定主機(jī)IP,默認(rèn)值為127.0.0.1

#bind 127.0.0.1

#Redis默認(rèn)監(jiān)聽(tīng)端口

port 6379

#客戶端閑置多少秒后,斷開(kāi)連接,默認(rèn)為300(秒)

timeout 300

#日志記錄等級(jí),有4個(gè)可選值,debug,verbose(默認(rèn)值),notice,warning

loglevel verbose

#指定日志輸出的文件名,默認(rèn)值為stdout,也可設(shè)為/dev/null屏蔽日志

logfile stdout

#可用數(shù)據(jù)庫(kù)數(shù),默認(rèn)值為16,默認(rèn)數(shù)據(jù)庫(kù)為0

databases 16

#保存數(shù)據(jù)到disk的策略

#當(dāng)有一條Keys數(shù)據(jù)被改變是,900秒刷新到disk一次

save 900 1

#當(dāng)有10條Keys數(shù)據(jù)被改變時(shí),300秒刷新到disk一次

save 300 10

#當(dāng)有1w條keys數(shù)據(jù)被改變時(shí),60秒刷新到disk一次

save 60 10000

#當(dāng)dump .rdb數(shù)據(jù)庫(kù)的時(shí)候是否壓縮數(shù)據(jù)對(duì)象

rdbcompression yes

#本地?cái)?shù)據(jù)庫(kù)文件名,默認(rèn)值為dump.rdb

dbfilename dump.rdb

#本地?cái)?shù)據(jù)庫(kù)存放路徑,默認(rèn)值為 ./

dir /var/lib/redis/
 

########### Replication #####################

#Redis的復(fù)制配置

# slaveof masterip> masterport> 當(dāng)本機(jī)為從服務(wù)時(shí),設(shè)置主服務(wù)的IP及端口

# masterauth master-password> 當(dāng)本機(jī)為從服務(wù)時(shí),設(shè)置主服務(wù)的連接密碼

#連接密碼

# requirepass foobared

#最大客戶端連接數(shù),默認(rèn)不限制

# maxclients 128

#最大內(nèi)存使用設(shè)置,達(dá)到最大內(nèi)存設(shè)置后,Redis會(huì)先嘗試清除已到期或即將到期的Key,當(dāng)此方法處理后,任到達(dá)最大內(nèi)存設(shè)置,將無(wú)法再進(jìn)行寫(xiě)入操作。

# maxmemory bytes>

#是否在每次更新操作后進(jìn)行日志記錄,如果不開(kāi)啟,可能會(huì)在斷電時(shí)導(dǎo)致一段時(shí)間內(nèi)的數(shù)據(jù)丟失。因?yàn)閞edis本身同步數(shù)據(jù)文件是按上面save條件來(lái)同步的,所以有的數(shù)據(jù)會(huì)在一段時(shí)間內(nèi)只存在于內(nèi)存中。默認(rèn)值為no

appendonly no

#更新日志文件名,默認(rèn)值為appendonly.aof

#appendfilename

#更新日志條件,共有3個(gè)可選值。no表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤(pán),always表示每次更新操作后手動(dòng)調(diào)用fsync()將數(shù)據(jù)寫(xiě)到磁盤(pán),everysec表示每秒同步一次(默認(rèn)值)。

# appendfsync always

appendfsync everysec

# appendfsync no


################ VIRTUAL MEMORY ###########

#是否開(kāi)啟VM功能,默認(rèn)值為no

vm-enabled no

# vm-enabled yes

#虛擬內(nèi)存文件路徑,默認(rèn)值為/tmp/redis.swap,不可多個(gè)Redis實(shí)例共享

vm-swap-file /tmp/redis.swap

# 將所有大于vm-max-memory的數(shù)據(jù)存入虛擬內(nèi)存,無(wú)論vm-max-memory設(shè)置多小,所有索引數(shù)據(jù)都是內(nèi)存存儲(chǔ)的 (Redis的索引數(shù)據(jù)就是keys),也就是說(shuō),當(dāng)vm-max-memory設(shè)置為0的時(shí)候,其實(shí)是所有value都存在于磁盤(pán)。默認(rèn)值為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官方文檔對(duì)VM的使用提出了一些建議:

當(dāng)你的key很小而value很大時(shí),使用VM的效果會(huì)比較好.因?yàn)檫@樣節(jié)約的內(nèi)存比較大.

當(dāng)你的key不小時(shí),可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個(gè)新的value.

最好使用Linux ext3 等對(duì)稀疏文件支持比較好的文件系統(tǒng)保存你的swap文件.

vm-max-threads這個(gè)參數(shù),可以設(shè)置訪問(wèn)swap文件的線程數(shù),設(shè)置最好不要超過(guò)機(jī)器的核數(shù).如果設(shè)置為0,那么所有對(duì)swap文件的操作都是串行的.可能會(huì)造成比較長(zhǎng)時(shí)間的延遲,但是對(duì)數(shù)據(jù)完整性有很好的保證.

2. 調(diào)整系統(tǒng)內(nèi)核參數(shù)

如果內(nèi)存情況比較緊張的話,需要設(shè)定內(nèi)核參數(shù):

echo 1 > /proc/sys/vm/overcommit_memory

這里說(shuō)一下這個(gè)配置的含義:/proc/sys/vm/overcommit_memory

該文件指定了內(nèi)核針對(duì)內(nèi)存分配的策略,其值可以是0、1、2。

0,表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請(qǐng)?jiān)试S;否則,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程。

1,表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何。

2,表示內(nèi)核允許分配超過(guò)所有物理內(nèi)存和交換空間總和的內(nèi)存

Redis 在dump數(shù)據(jù)的時(shí)候,會(huì)fork出一個(gè)子進(jìn)程,理論上child進(jìn)程所占用的內(nèi)存和parent是一樣的,比如parent占用的內(nèi)存為 8G,這個(gè)時(shí)候也要同樣分配8G的內(nèi)存給child, 如果內(nèi)存無(wú)法負(fù)擔(dān),往往會(huì)造成redis服務(wù)器的down機(jī)或者IO負(fù)載過(guò)高,效率下降。所以這里比較優(yōu)化的內(nèi)存分配策略應(yīng)該設(shè)置為 1(表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何)

一、 運(yùn)行服務(wù)

# redis-server /etc/redis/redis.conf 開(kāi)啟

# redis-cli shutdown 關(guān)閉

二、 測(cè)試

1) 可在后臺(tái)啟動(dòng)redis服務(wù)后,用redis-benchmark命令測(cè)試

2) 通過(guò)redis-cli命令實(shí)際操作測(cè)試

三、 保存/備份

數(shù)據(jù)備份可以通過(guò)定期備份該文件實(shí)現(xiàn)。

因?yàn)閞edis是異步寫(xiě)入磁盤(pán)的,如果要讓內(nèi)存中的數(shù)據(jù)馬上寫(xiě)入硬盤(pán)可以執(zhí)行如下命令:

redis-cli save 或者 redis-cli -p 6380 save(指定端口)

注意,以上部署操作需要具備一定的權(quán)限,比如復(fù)制和設(shè)定內(nèi)核參數(shù)等。

執(zhí)行redis-benchmark命令時(shí)也會(huì)將內(nèi)存數(shù)據(jù)寫(xiě)入硬盤(pán)。

四、 開(kāi)啟端口號(hào)

1) 打開(kāi)/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默認(rèn)端口號(hào)

3) 保存,重啟防火墻:/etc/init.d/iptables restart

以上這篇詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • redis常用命令、常見(jiàn)錯(cuò)誤、配置技巧等分享
  • CentOS 6.6下Redis安裝配置記錄
  • CentOS Linux系統(tǒng)下安裝Redis過(guò)程和配置參數(shù)說(shuō)明
  • Redis數(shù)據(jù)庫(kù)的安裝配置方法
  • redis配置文件redis.conf中文版(基于2.4)
  • Redis配置文件詳解
  • Spring Boot Redis 集成配置詳解
  • 詳解springboot配置多個(gè)redis連接
  • Python的Flask框架使用Redis做數(shù)據(jù)緩存的配置方法
  • redis安裝、配置、使用和redis php擴(kuò)展安裝教程
  • CentOS系統(tǒng)下Redis安裝和自啟動(dòng)配置的步驟
  • redis配置認(rèn)證密碼的方法
  • 配置Spring4.0注解Cache+Redis緩存的用法
  • 詳解spring boot starter redis配置文件
  • 詳解Centos7下配置Redis并開(kāi)機(jī)自啟動(dòng)
  • Centos下配置Redis開(kāi)機(jī)啟動(dòng)腳本
  • Windows下Redis安裝配置教程
  • Redis3.2.6配置文件詳細(xì)中文說(shuō)明

標(biāo)簽:景德鎮(zhèn) 贛州 澳門(mén) 廣東 香港 林芝 揚(yáng)州 唐山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)》,本文關(guān)鍵詞  詳談,redis,優(yōu)化,配置,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于詳談redis優(yōu)化配置和redis.conf說(shuō)明(推薦)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章