? ? redis是一款非關(guān)系型數(shù)據(jù)庫,是一個高性能的key-value數(shù)據(jù)庫,經(jīng)常被用作關(guān)系型數(shù)據(jù)庫的緩存數(shù)據(jù)庫以提高服務(wù)器訪問速度,特別適用于高并發(fā)場景。為了提升Redis高可用性,本次實(shí)戰(zhàn),先講redis.conf配置文件,然后做主從庫配置。
1.redis.conf配置文件詳解
1)基本配置
daemonize no 是否以后臺進(jìn)程啟動
databases 16 創(chuàng)建database的數(shù)量(默認(rèn)選中的是database 0)
save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發(fā),即900秒之后至少1個關(guān)鍵字發(fā)生變化。
save 300 10 #必須是300秒之后至少10個關(guān)鍵字發(fā)生變化。
save 60 10000 #必須是60秒之后至少10000個關(guān)鍵字發(fā)生變化。
stop-writes-on-bgsave-error yes #后臺存儲錯誤停止寫。
rdbcompression yes #使用LZF壓縮rdb文件。
rdbchecksum yes #存儲和加載rdb文件時校驗(yàn)。
dbfilename dump.rdb #設(shè)置rdb文件名。
dir ./? #設(shè)置工作目錄,rdb文件會寫入該目錄。
2)主從配置
slaveof <masterip> <masterport> 設(shè)為某臺機(jī)器的從服務(wù)器
masterauth <master-password> 連接主服務(wù)器的密碼
slave-serve-stale-data yes # 當(dāng)主從斷開或正在復(fù)制中,從服務(wù)器是否應(yīng)答
slave-read-only yes #從服務(wù)器只讀
repl-ping-slave-period 10 #從ping主的時間間隔,秒為單位
repl-timeout 60 #主從超時時間(超時認(rèn)為斷線了),要比period大
slave-priority 100 #如果master不能再正常工作,那么會在多個slave中,選擇優(yōu)先值最小的一個slave提升為master,優(yōu)先值為0表示不能提升為master。
repl-disable-tcp-nodelay no #主端是否合并數(shù)據(jù),大塊發(fā)送給slave
slave-priority 100 從服務(wù)器的優(yōu)先級,當(dāng)主服掛了,會自動挑slave priority最小的為主服
3)安全
requirepass foobared # 需要密碼
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共環(huán)境,可以重命名部分敏感命令 如config
4)限制
maxclients 10000 #大連接數(shù)
maxmemory <bytes> #大使用內(nèi)存
maxmemory-policy volatile-lru #內(nèi)存到極限后的處理
volatile-lru -> LRU算法刪除過期key
allkeys-lru -> LRU算法刪除key(不區(qū)分過不過期)
volatile-random -> 隨機(jī)刪除過期key
allkeys-random -> 隨機(jī)刪除key(不區(qū)分過不過期)
volatile-ttl -> 刪除快過期的key
noeviction -> 不刪除,返回錯誤信息
解釋 LRU ttl都是近似算法,可以選N個,再比較最適宜T踢出的數(shù)據(jù)
maxmemory-samples 3
5)日志模式
appendonly no #是否僅要日志
appendfsync no # 系統(tǒng)緩沖,統(tǒng)一寫,速度快
appendfsync always # 系統(tǒng)不緩沖,直接寫,慢,丟失數(shù)據(jù)少
appendfsync everysec #折衷,每秒寫1次
no-appendfsync-on-rewrite no #為yes,則其他線程的數(shù)據(jù)放內(nèi)存里,合并寫入(速度快,容易丟失的多)
auto-AOF-rewrite-percentage 100 當(dāng)前aof文件是上次重寫是大N%時重寫
auto-AOF-rewrite-min-size 64mb aof重寫至少要達(dá)到的大小
6)慢查詢
slowlog-log-slower-than 10000 #記錄響應(yīng)時間大于10000微秒的慢查詢
slowlog-max-len 128 # 最多記錄128條
7)服務(wù)端命令
time 返回時間戳+微秒
dbsize 返回key的數(shù)量
bgrewriteaof 重寫aof
bgsave 后臺開啟子進(jìn)程dump數(shù)據(jù)
save 阻塞進(jìn)程dump數(shù)據(jù)
lastsave
slaveof host port 做host port的從服務(wù)器(數(shù)據(jù)清空,復(fù)制新主內(nèi)容)
slaveof no one 變成主服務(wù)器(原數(shù)據(jù)不丟失,一般用于主服失敗后)
flushdb 清空當(dāng)前數(shù)據(jù)庫的所有數(shù)據(jù)
flushall 清空所有數(shù)據(jù)庫的所有數(shù)據(jù)(誤用了怎么辦?)
shutdown [save/nosave] 關(guān)閉服務(wù)器,保存數(shù)據(jù),修改AOF(如果設(shè)置)
slowlog get 獲取慢查詢?nèi)罩?br /> slowlog len 獲取慢查詢?nèi)罩緱l數(shù)
slowlog reset 清空慢查詢
info []
config get 選項(xiàng)(支持*通配)
config set 選項(xiàng) 值
config rewrite 把值寫到配置文件
config restart 更新info命令的信息
debug object key #調(diào)試選項(xiàng),看一個key的情況
debug segfault #模擬段錯誤,讓服務(wù)器崩潰
object key (refcount|encoding|idletime)
monitor #打開控制臺,觀察命令(調(diào)試用)
client list #列出所有連接
client kill #殺死某個連接 CLIENT KILL 127.0.0.1:43501
client getname #獲取連接的名稱 默認(rèn)nil
client setname "名稱" #設(shè)置連接名稱,便于調(diào)試
8)連接命令
auth 密碼 #密碼登陸(如果有密碼)
ping #測試服務(wù)器是否可用
echo "some content" #測試服務(wù)器是否正常交互
select 0/1/2... #選擇數(shù)據(jù)庫
quit #退出連接
2.Redis緩存服務(wù)器命令行中常用命令如下:
127.0.0.1:6379> config get *??#獲取Redis服務(wù)器所有配置信息
127.0.0.1:6379> config set loglevel notice? ? ?#總共有4個日志級別可供選擇
127.0.0.1:6379> config set requirepass "sky9899"??#配置redis訪問密碼
127.0.0.1:6379> auth sky9899
redis-cli -h host -p port -a password? ? #遠(yuǎn)程連接Redis數(shù)據(jù)庫
[root@redis_slave bin]# redis-cli -h 192.168.153.142 -p 6379 -a sky9899??#實(shí)例
127.0.0.1:6379> role? #返回主從實(shí)例所屬角色
127.0.0.1:6379> info? ? ?#獲取redis服務(wù)器的各種信息和統(tǒng)計(jì)數(shù)值
127.0.0.1:6379> slaveof 192.168.153.143 6379? ?#指定服務(wù)器的從服務(wù)器
3.Redis集群實(shí)戰(zhàn)
Redis主從復(fù)制,當(dāng)用戶往master端寫入數(shù)據(jù)時,通過Redis sync機(jī)制將數(shù)據(jù)文件發(fā)送到slave,slave也會執(zhí)行相同的操作確保數(shù)據(jù)一致。
Redis主庫配置:redis.conf
daemonize no
pidfile /var/run/redis.pid
port 6379
tcp-backlog 511
# bind 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
從庫192.168.153.143:redis.conf配置
daemonize no
pidfile /var/run/redis.pid
port 6379
slaveof? 192.168.153.142 6379??? #指定主庫IP及端口號
tcp-backlog 511
# bind 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./? ?#設(shè)置工作目錄,rdb文件會寫入該當(dāng)前目錄,也可以指定新目錄。
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
4.測試結(jié)果:
1)192.168.153.142:Redis主庫操作
[root@redis_master bin]# ./redis-cli
127.0.0.1:6379> set sky9899? www.sky9899.com
OK
127.0.0.1:6379> set sky9890? ?www.sky9890.com
OK
127.0.0.1:6379> get sky9899
"www.sky9899.com"
127.0.0.1:6379> get sky9890
"www.sky9890.com"
2)192.168.153.143: Redis從庫操作
127.0.0.1:6379>?
[root@redis_slave bin]# ./redis-cli?
127.0.0.1:6379> get sky9899
"www.sky9899.com"
127.0.0.1:6379> get sky9890
"www.sky9890.com"
127.0.0.1:6379>?
小結(jié),通過主從庫操作的結(jié)果顯示,說明主從庫配置成功。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁題目:Redis集群主從實(shí)戰(zhàn)-創(chuàng)新互聯(lián)
本文來源:http://www.chinadenli.net/article10/gspgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、微信小程序、建站公司、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容