centos安装集群redis
下载redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
wget http://tar.matosiki.site/tar/redis-4.0.9.tar.gz
tar -zxvf redis-4.0.9.tar.gz
mv redis-4.0.9 /opt/
cd /opt/redis-4.0.9/
mkdir -p /opt/redis-4.0.9/redis_cluster
cp redis.conf redis_cluster
# 编辑redis配置文件
vim redis_cluster/redis.conf
|
1
2
3
4
5
6
7
|
bind 0.0.0.0 //默认ip为127.0.0.1 也可以改为局域网 192.168.10.220
daemonize yes //redis后台运行
pidfile /var/run/redis_6379.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_6379.conf //集群的配置
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
|
添加6个节点分别更改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
cp redis_cluster/redis.conf redis_cluster/redis-7000.conf
cp redis_cluster/redis.conf redis_cluster/redis-7001.conf
cp redis_cluster/redis.conf redis_cluster/redis-7002.conf
cp redis_cluster/redis.conf redis_cluster/redis-7003.conf
cp redis_cluster/redis.conf redis_cluster/redis-7004.conf
cp redis_cluster/redis.conf redis_cluster/redis-7005.conf
vim redis_cluster/redis-7000.conf
:%s/6379/7000/g
vim redis_cluster/redis-7001.conf
:%s/6379/7001/g
vim redis_cluster/redis-7002.conf
:%s/6379/7002/g
vim redis_cluster/redis-7003.conf
:%s/6379/7003/g
vim redis_cluster/redis-7004.conf
:%s/6379/7004/g
vim redis_cluster/redis-7005.conf
:%s/6379/7005/g
# 启动所有节点
src/redis-server redis_cluster/redis.conf
src/redis-server redis_cluster/redis-7000.conf
src/redis-server redis_cluster/redis-7001.conf
src/redis-server redis_cluster/redis-7002.conf
src/redis-server redis_cluster/redis-7003.conf
src/redis-server redis_cluster/redis-7004.conf
src/redis-server redis_cluster/redis-7005.conf
|
安装ruby并升级ruby-redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
yum -y install ruby ruby-devel rubygems rpm-build
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
rvm list known
# 升级ruby
#安装ruby
rvm install 2.4.0
#使用新版本
rvm use 2.4.0
#移除旧版本
rvm remove 2.0.0
#查看当前版本
ruby --version
gem install redis
|
新建分片
参数create表示创建一个新的集群,–replicas 1表示为每个master创建一个slave
1
2
3
|
# 单机请使用
./src/redis-trib.rb create --replicas 1 0.0.0.0:7000 0.0.0.0:7001 \
0.0.0.0:7002 0.0.0.0:7003 0.0.0.0:7004 0.0.0.0:7005
|
1
2
|
# master-slave请使用 先用telnet测试端口是否可以访问
./src/redis-trib.rb create --replicas 1 192.168.10.220:6379 192.168.10.221:6379 192.168.10.220:7000 192.168.10.221:7000 192.168.10.220:7001 192.168.10.221:7001 192.168.10.220:7002 192.168.10.221:7002 192.168.10.220:7003 192.168.10.221:7003 192.168.10.220:7004 192.168.10.221:7004 192.168.10.220:7005 192.168.10.221:7005
|
完成测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$ redis-cli -c -p 7000
redis 127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
redis 127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
redis 127.0.0.1:7000> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7002
"bar"
redis 127.0.0.1:7000> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
"world"
|
查看集群状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
127.0.0.1:7000> cluster info
cluster_state:ok #集群状态
cluster_slots_assigned:16384 #被分配的槽位数
cluster_slots_ok:16384 #正确分配的槽位
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6 #当前节点
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:48273
cluster_stats_messages_pong_sent:49884
cluster_stats_messages_sent:98157
cluster_stats_messages_ping_received:49879
cluster_stats_messages_pong_received:48273
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:98157
|
使用cluster nodes命令查看节点状态。
1
2
3
4
5
6
7
8
|
127.0.0.1:7000> cluster nodes
58d1fe2d2f06144def4a7de79f6851e0c68d316b 127.0.0.1:7000@17000 slave 45fd67328af03fe008dd3605baaeb347373dd9c8 0 1539090532575 6 connected
45fd67328af03fe008dd3605baaeb347373dd9c8 127.0.0.1:7001@17001 myself,master - 0 1539090533000 1 connected 0-5460
4387192aad51ddf6df1b5c9716088d2e96a55149 127.0.0.1:7002@17002 master - 0 1539090534579 2 connected 5461-10922
b9afd1c136a5b379c695b8c49b3119f6daa25aa0 127.0.0.1:7005@17005 slave 7990a7b654836850ff207146a790f9fec2f0199d 0 1539090535580 5 connected
c00d297dc429033ea2396a176d610d6acabe5b62 127.0.0.1:7004@17004 slave 4387192aad51ddf6df1b5c9716088d2e96a55149 0 1539090534000 4 connected
7990a7b654836850ff207146a790f9fec2f0199d 127.0.0.1:7003@17003 master - 0 1539090534000 3 connected 10923-16383
|
重新安装集群
1
2
3
4
5
6
7
8
9
10
11
|
./src/redis-cli -p 3679 shutdown
./src/redis-cli -p 7000 shutdown
./src/redis-cli -p 7001 shutdown
./src/redis-cli -p 7002 shutdown
./src/redis-cli -p 7003 shutdown
./src/redis-cli -p 7004 shutdown
./src/redis-cli -p 7005 shutdown
rm -f dump.rdb
rm -f appendonly.aof
rm -f nodes-*.conf
|
1
2
|
# 查看集群节点状态
./src/redis-cli -p 7000 cluster nodes
|
给redis添加密码
1
2
3
4
5
6
7
|
vi redis_cluster/redis.conf
vi redis_cluster/redis-7000.conf
vi redis_cluster/redis-7001.conf
vi redis_cluster/redis-7002.conf
vi redis_cluster/redis-7003.conf
vi redis_cluster/redis-7004.conf
vi redis_cluster/redis-7005.conf
|
1
2
|
masterauth 123456
requirepass 123456
|