centos7部署redis_3.2.9 cluster部署(三主三从
1,虚拟机环境
使用的Linux环境已经版本:
Centos 7 64位系统
主机ip :
192.168.56.180
192.168.56.181
192.168.56.182
每台服务器是1主1从,实验3台服务器课成为3主3从。
Redis安装的项目目录,日志,配置文件等都存放在/ root / svr /目录下。
2,下载相关的安装包以及解压
首先在192.168.56.180机器操作:
cd /data/work/
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
tar -zxvf redis-3.2.9.tar.gz
3,安装
在/data/work/redis-3.2.9/目录下执行:
make && make install PREFIX = / data / work / redis-3.2.9
4,配置信息
创建性能配置,日志日志,数据所在的文件夹:
cd /data/work/redis-3.2.9/`
mkdir cluster-conf`
mkdir -pv /data/work/redis-3.2.9/logs
创建可用端口文件夹:
cd cluster-conf
mkdir 7777
mkdir 8888
配置复制文件到/数据/工作/redis-3.2.9/cluster-conf/7777目录下:
cp /data/work/redis-3.2.9/redis.conf /data/work/redis-3.2.9/cluster-conf/7777
- 修改7777目录下redis.conf(主)配置文件:
bind 192.168.56.181 127.0.0.1
protected-mode yes
masterauth "xxxxx"
requirepass "xxxxx"
port 8888
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /data/work/redis-3.2.9/cluster-conf/8888/redis_8888.pid
loglevel notice
logfile "/data/work/redis-3.2.9/logs/redis_8888.log"
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-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
maxclients 100000
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file /data/work/redis-3.2.9/cluster-conf/8888/nodes-8888.conf
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-size -2
list-compress-depth 0
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
- 群集配置文件/data/work/redis-3.2.9/cluster-conf/8888/redis.conf (从)
bind 192.168.56.181 127.0.0.1
protected-mode yes
masterauth "xxxxx"
requirepass "xxxxx"
port 8888
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /data/work/redis-3.2.9/cluster-conf/8888/redis_8888.pid
loglevel notice
logfile "/data/work/redis-3.2.9/logs/redis_8888.log"
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-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
maxclients 100000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file /data/work/redis-3.2.9/cluster-conf/8888/nodes-8888.conf
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-size -2
list-compress-depth 0
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
5,使用scp复制安装和配置好的redis复制到其他服务器上
已经在192.168.56.180机器配置好,复制到181和182机器
在两台新机器上创建文件夹
scp -r /data/work/redis-3.2.9 [root@192.168.56.181](mailto:root@192.168.56.181):/data/work/
`#输入181机器密码即可传输数据。`
scp -r /data/work/redis-3.2.9 [root@192.168.56.182](mailto:root@192.168.56.182):/data/work/`
`#输入182机器密码即可传输数据。`
6,启动3台机器的redis
3台机器执行启动方式:
/data/work/redis-3.2.9/bin/redis-server /root/svr/redis-3.2.9/cluster-conf/7777/redis.conf &
/data/work/redis-3.2.9/bin/redis-server /root/svr/redis-3.2.9/cluster-conf/8888/redis.conf &
查看状态是否:
ps -ef|grep redis
7,安装ruby2.4.0
gpg2 --recv键409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
`yum -y update nss`
curl -sSL [https://get.rvm.io](https://get.rvm.io/) | bash -s稳定
源/etc/profile.d/rvm.sh
rvm安装2.4.0
rvm使用2.4.0
gem install redis
yum install rubygems
8,创造实力
/data/work/redis-3.2.9/src/redis-trib.rb create --replicas 1 192.168.56.180:7777 192.168.56.180:8888 192.168.56.181:7777 192.168.56.181:8888 192.168.56.182:7777 192.168.56.182:8888
无法创建,提示错误信息:
>>> Creating cluster
[ERR] Sorry, can't connect to node 192.168.56.180:7777
修改配置文件redis.conf的权限设置安全密码(密码自定义设置)
requirepass "xxxxx" #权限密码`
masterauth "xxxxx"
- 设置密码之后如果需要使用redis-trib.rb的各种命令
如:./redis-trib.rb check 127.0.0.1:7000,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000
解决办法:vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb,然后修改passord
find / -name client.rb
vim /usr/local/rvm/gems/ruby-2.4.0/gems/redis-4.2.5/lib/redis/client.rb
1 # frozen_string_literal: true
.
.
18 connect_timeout: nil,
19 timeout: 5.0,
20 password: "xxxxx", #######修改这里的密码(每台机器做同样的操作)
**注意:client.rb路径可以通过find命令查找:find / -name 'client.rb'**
带密码访问集群
/data/work/redis-3.2.9/bin/redis-cli -c -p 8888 -a xxxxx
>>> Performing Cluster Check (using node 127.0.0.1:7777)
M: d8xxxefxxxxxxxxxxxxxxxxxx2 127.0.0.1:7777
slots: (0 slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.
9、测试集群
### 192.168.56.180
/data/work/redis-3.2.9/bin/redis-cli -c -p 8888 -a xxxxx
127.0.0.1:8888> set test hellokugou
-> Redirected to slot [6918] located at 192.168.56.180:7777
OK
### 192.168.56.182
/data/work/redis-3.2.9/bin/redis-cli -c -p 7777 -a xxxxx
127.0.0.1:7777> get test
-> Redirected to slot [6918] located at 192.168.56.182:7777
"hellokugou"
172.22.15.245:7777> CLUSTER NODES
6xxxxxxxxxxxx7c 192.168.56.180:8888 slave 7xxxxxxxxxxxxxxxxxxxxx7 0 1606114181062 4 connected
3xxxxxxxxxxxxx1 192.168.56.181:8888 slave dxxxxxxxxxxxxxxxxxxxxxx2 0 1606114179060 6 connected
7xxxxxxxxxxxxxa 192.168.56.182:8888 slave 8xxxxxxxxxxxxxxxxxxxxx9 0 1606114182064 3 connected
dxxxxxxxxxxxxx2 192.168.56.180:7777 master - 0 1606114180062 5 connected 10923-16383
8xxxxxxxxxxxxx9 192.168.56.181:7777 myself,master - 0 0 3 connected 5461-10922
7xxxxxxxxxxxxx7 192.168.56.182:7777 master - 0 1606114182564 1 connected 0-5460
192.168.56.182:7777> exit
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。