卸載機器上自帶的ruby rubygems
yum remove ruby rubygems -y
解決ruby語言的環(huán)境依賴庫
yum install gcc gcc-c++ gdbm-devel readline-devel openssl-devel wget -y
下載程序源碼包,解壓并安裝
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz
tar xf ruby-2.5.5.tar.gz
cd ruby-2.5.5
./configure --prefix=/usr/local/ruby --enable-shared make && make install
下載redis源碼包解壓并安裝
wget http://download.redis.io/releases/redis-5.0.9.tar.gz
tar -xvf redis-5.0.9.tar.gz
cd redis-5.0.9
make PREFIX=/usr/local/redis install
創(chuàng)建目錄
cd /usr/local/redis && mkdir cluster && mkdir replication && mkdir sentinel
cluster/replication/sentinel目錄下均執(zhí)行:
mkdir data && mkdir log && mkdir redis_conf && cp /usr/local/src/redis-5.0.9/redis.conf cd /usr/local/redis/replication/redis_conf
三臺主機下的配置文件分別做修改:
mv /usr/local/redis/replication/redis_conf/redis.conf /usr/local/redis/replication/redis_conf/redis_6379.conf
mv /usr/local/redis/replication/redis_conf/redis.conf /usr/local/redis/replication/redis_conf/redis_6380.conf
mv /usr/local/redis/replication/redis_conf/redis.conf /usr/local/redis/replication/redis_conf/redis_6381.conf
redis單機部署
redis主從部署
節(jié)點信息
| 節(jié)點名稱 | 節(jié)點IP | 服務端口 |
|---|---|---|
| master | 192.168.28.135 | 6379 |
| slave1 | 192.168.28.136 | 6380 |
| slave2 | 192.168.28.137 | 6381 |
防火墻添加端口的準入準出
firewall-cmd --add-port=6379/tcp
firewall-cmd --add-port=6380/tcp
firewall-cmd --add-port=6381/tcp
修改master配置
vim /usr/local/redis/replication/redis_conf/redis_6379.conf
port 6379
daemonize yes
pidfile /usr/local/redis/replication/redis_6379.pid
logfile "/usr/local/redis/replication/log/redis_6379.log"
dbfilename 6379_dump.rdb
dir /usr/local/redis/replication/data/6379
requirepass 123456
bind 192.168.28.135
修改slave1配置
vim /usr/local/redis/replication/redis_conf/redis_6380.conf
port 6380
daemonize yes
pidfile /usr/local/redis/replication/redis_6380.pid
logfile "/usr/local/redis/replication/log/redis_6380.log"
dbfilename 6380_dump.rdb
dir /usr/local/redis/replication/data/6380
replicaof 192.168.28.135 6379
replica-read-only yes
masterauth 123456
bind 192.168.28.136
修改slave2配置
vim /usr/local/redis/replication/redis_conf/redis_6381.conf
port 6381
daemonize yes
pidfile /usr/local/redis/replication/redis_6381.pid
logfile "/usr/local/redis/replication/log/redis_6381.log"
dbfilename 6381_dump.rdb
dir /usr/local/redis/replication/data/6381
replicaof 192.168.28.135 6379
replica-read-only yes
masterauth 123456
bind 192.168.28.137
啟動master服務&&登陸master服務并查看主從連接信息
/usr/local/redis/bin/redis-server /usr/local/redis/replication/redis_conf/redis_6379.conf
/usr/local/redis/bin/redis-cli -h 192.168.28.135 -p 6379 -a 123456
info replication
啟動slave1服務&&登陸slave1服務并查看主從連接信息
/usr/local/redis/bin/redis-server /usr/local/redis/replication/redis_conf/redis_6380.conf
/usr/local/redis/bin/redis-cli -h 192.168.28.136 -p 6380 -a 123456
info replication
啟動slave2服務&&登陸slave2服務并查看主從連接信息
/usr/local/redis/bin/redis-server /usr/local/redis/replication/redis_conf/redis_6381.conf
/usr/local/redis/bin/redis-cli -h 192.168.28.137 -p 6381 -a 123456
info replication
redis哨兵部署
先完成主從的配置,見上述步驟
節(jié)點信息
| 節(jié)點名稱 | 節(jié)點IP | 服務端口 |
|---|---|---|
| sentinel1 | 192.168.28.135 | 26379 |
| sentinel2 | 192.168.28.136 | 26379 |
| sentinel3 | 192.168.28.137 | 26379 |
防火墻添加端口的準入準出
firewall-cmd --add-port=26379/tcp
修改哨兵配置,三者保持一致
port 26379
daemonize yes
pidfile "/usr/local/redis/sentinel/redis_26379.pid"
logfile "/usr/local/redis/sentinel/log/sentinel_26379.log"
dir "/usr/local/redis/sentinel/data/26379"
sentinel monitor mymaster 192.168.28.135 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
sentinel auth-pass mymaster 123456
啟動三個哨兵
/usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel/sentinel_conf/sentinel_26379.conf
查看135是否為master
/usr/local/redis/bin/redis-cli -h 192.168.28.135 -p 6379 -a 123456
info replication
關閉135的redis服務
ps -ef|grep redis
kill -9 ${pid}
重啟135服務
/usr/local/redis/bin/redis-server /usr/local/redis/replication/redis_conf/redis_6379.conf
登錄136和137查看當前的master是誰
/usr/local/redis/bin/redis-cli -h 192.168.28.136 -p 6380 -a 123456
info replication
/usr/local/redis/bin/redis-cli -h 192.168.28.135 -p 6381 -a 123456
info replication
當前的master已經變?yōu)?37,135已經變?yōu)榱薽aster
[root@localhost sentinel]# /usr/local/redis/bin/redis-cli -h 192.168.28.137 -p 6381 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.28.137:6381> info replication
role:master
connected_slaves:1
slave0:ip=192.168.28.135,port=6379,state=online,offset=248671,lag=1
master_replid:a63539a8e42c4489ee765750057614eaf705d4f4
master_replid2:3b3cfaf2132d154891a48fe16089aa5f08acb170
master_repl_offset:248814
second_repl_offset:46650
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:248814
192.168.28.137:6381>