之前幾講都是在鋪墊各種redis replication的原理赵抢,和知識,主從声功,讀寫分離烦却,畫圖
知道了這些東西,關鍵是怎么搭建呢先巴?其爵??
一主一從伸蚯,往主節(jié)點去寫摩渺,在從節(jié)點去讀,可以讀到剂邮,主從架構就搭建成功了
1摇幻、啟用復制,部署slave node
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd? /usr/local/tcl8.6.1/unix/
./configure?
make && make install
使用redis-3.2.8.tar.gz(截止2017年4月的最新穩(wěn)定版)
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install
(1)redis utils目錄下,有個redis_init_script腳本
(2)將redis_init_script腳本拷貝到linux的/etc/init.d目錄中绰姻,將redis_init_script重命名為redis_6379枉侧,6379是我們希望這個redis實例監(jiān)聽的端口號
(3)修改redis_6379腳本的第6行的REDISPORT,設置為相同的端口號(默認就是6379)
(4)創(chuàng)建兩個目錄:/etc/redis(存放redis的配置文件)狂芋,/var/redis/6379(存放redis的持久化文件)
(5)修改redis配置文件(默認在根目錄下榨馁,redis.conf),拷貝到/etc/redis目錄中帜矾,修改名稱為6379.conf
(6)修改redis.conf中的部分配置為生產環(huán)境
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
port 6379 設置redis的監(jiān)聽端口號
dir /var/redis/6379 設置持久化文件的存儲位置
(7)讓redis跟隨系統(tǒng)啟動自動啟動
在redis_6379腳本中翼虫,最上面,加入兩行注釋
# chkconfig:? 2345 90 10
# description:? Redis is a persistent key-value database
chkconfig redis_6379 on
在slave node上配置:slaveof 192.168.1.1 6379黍特,即可
也可以使用slaveof命令
2蛙讥、強制讀寫分離
基于主從復制架構锯蛀,實現讀寫分離
redis slave node只讀灭衷,默認開啟,slave-read-only
開啟了只讀的redis slave node旁涤,會拒絕所有的寫操作翔曲,這樣可以強制搭建成讀寫分離的架構
3、集群安全認證
master上啟用安全認證劈愚,requirepass
master連接口令瞳遍,masterauth
4、讀寫分離架構的測試
先啟動主節(jié)點菌羽,eshop-cache01上的redis實例
再啟動從節(jié)點掠械,eshop-cache02上的redis實例
剛才我調試了一下,redis slave node一直說沒法連接到主節(jié)點的6379的端口
在搭建生產環(huán)境的集群的時候注祖,不要忘記修改一個配置猾蒂,bind
bind 127.0.0.1 -> 本地的開發(fā)調試的模式,就只能127.0.0.1本地才能訪問到6379的端口
每個redis.conf中的bind 127.0.0.1 -> bind自己的ip地址
在每個節(jié)點上都: iptables -A INPUT -ptcp --dport? 6379 -j ACCEPT
redis-cli -h ipaddr
info replication
在主上寫是晨,在從上讀