安装redis集群
安装
cd /home/appadmin/source-package/
http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz
cd /home/appadmin/source-package/redis-3.2.4
make && make PREFIX=/home/appadmin/redis install
配置
### /home/appadmin/redis/cluster/conf
###参考文档
https://www.cnblogs.com/songzhixue/p/11142311.html
在/home/appadmin/redis/cluster创建这几个文件夹data,log,conf,pid,cluster-node
mkdir -p /home/appadmin/redis/cluster/{data,log,conf,pid,cluster-node}
将/home/appadmin/source-package/redis-3.2.4/redis.conf复制到data目录下
cp /home/appadmin/source-package/redis-3.2.4/redis.conf /home/appadmin/redis/cluster/conf/7001.conf
修改7001.conf的指定配置内容
bind 127.0.0.1 10.154.25.38
port 7001
#需要以后台进程启动个,否则客户端关闭redis就关闭了
daemonize yes
#dir,logfile就是数据文件和日志文件的配置,根据每个人安装路径的不同去配置
dir /home/appadmin/redis/cluster/data/
会自动生成到data目录下面,需要写一个文件名
dbfilename dump_7001.rdb
logfile /home/appadmin/redis/cluster/log/redis_7001.log
pidfile /home/appadmin/redis/cluster/pid/redis_7001.pid
#开启集群模式
cluster-enabled yes
#odes信息配置文件,是自动生成的
cluster-config-file nodes-7000.conf
#redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no
cluster-require-full-coverage no
配置文件复制并修改
sed "s/7001/7002/g" 7001.conf > 7002.conf
sed "s/7001/7003/g" 7001.conf > 7003.conf
sed "s/7001/7004/g" 7001.conf > 7004.conf
sed "s/7001/7005/g" 7001.conf > 7005.conf
sed "s/7001/7006/g" 7001.conf > 7006.conf
启动6个节点
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7001.conf
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7002.conf
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7003.conf
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7004.conf
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7005.conf
/home/appadmin/redis/bin/redis-server /home/appadmin/redis/cluster/conf/7006.conf
#ps -ef|grep redis|grep -v ‘grep’|awk ‘{print $2}’
#ps -ef|grep redis|grep -v ‘grep’|awk '{print ‘kill -9 ’ $2}’
安装ruby节点
进入目录
cd /home/appadmin/source-package/
1.下载ruby的解释器
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.7.tar.gz
2.解压缩ruby的源码包
tar -zxvf ruby-2.3.7.tar.gz
3.进入ruby的源码包目录,编译三部曲
cd /home/appadmin/source-package/ruby-2.3.7
./configure --prefix=/home/appadmin/ruby-2.3.7
make && make install
3.配置ruby的环境变量
/opt/ruby231/bin
vim /etc/profile
写入PATH="/home/appadmin/ruby-2.3.7/bin"
4.读取这个/etc/profile
source /etc/profile
安装ruby操作redis的模块
#进入目录
cd /home/appadmin/source-package/
5.下载ruby操作redis的模块
wget http://rubygems.org/downloads/redis-3.3.0.gem
#gem install -l redis-3.3.0.gem
/home/appadmin/ruby-2.3.7/bin/gem install -l redis-3.3.0.gem
redis集群创建
7.6.一键分配redis集群的槽位
#查找一下这个命令的绝对路径
find / -name redis-trib.rb
#这个数字 1 代表,每个redis主库,只有一个redis从库
/home/appadmin/source-package/redis-3.2.4/src/redis-trib.rb create -- replicas 1 10.154.25.38:7001 10.154.25.38:7002 10.154.25.38:7003 10.154.25.38:7004 10.154.25.38:7005 10.154.25.38:7006
如下输出,则创建成功
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
>>> Using 3 masters:
>>> 127.0.0.1:7001
>>> 127.0.0.1:7002
>>> 127.0.0.1:7003
>>> Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
>>> Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
>>> Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
>>> M: b3c98313043174194ce7695e453fc69787214243 127.0.0.1:7001
>>> slots:0-5460 (5461 slots) master
>>> M: cb7c0bbe8da017b5a883f42f5bd7bb11b9e0fdd5 127.0.0.1:7002
>>> slots:5461-10922 (5462 slots) master
>>> M: 1055f56ef021cd435c9c3a22daff5357d2954d0c 127.0.0.1:7003
>>> slots:10923-16383 (5461 slots) master
>>> S: 3856c36f88d26f12aecc7101eb74f2d7fa574b70 127.0.0.1:7004
>>> replicates b3c98313043174194ce7695e453fc69787214243
>>> S: afb6ddd3d8d25173e331b04794dd8acfcfe384b9 127.0.0.1:7005
>>> replicates cb7c0bbe8da017b5a883f42f5bd7bb11b9e0fdd5
>>> S: 64edd5cca0403b9680b0670a525bb1daaecb67bb 127.0.0.1:7006
>>> replicates 1055f56ef021cd435c9c3a22daff5357d2954d0c
>>> Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
>>> Waiting for the cluster to join..
>>> Performing Cluster Check (using node 127.0.0.1:7001)
>>> M: b3c98313043174194ce7695e453fc69787214243 127.0.0.1:7001
>>> slots:0-5460 (5461 slots) master
>>> 1 additional replica(s)
>>> M: 1055f56ef021cd435c9c3a22daff5357d2954d0c 127.0.0.1:7003
>>> slots:10923-16383 (5461 slots) master
>>> 1 additional replica(s)
>>> S: afb6ddd3d8d25173e331b04794dd8acfcfe384b9 127.0.0.1:7005
>>> slots: (0 slots) slave
>>> replicates cb7c0bbe8da017b5a883f42f5bd7bb11b9e0fdd5
>>> S: 64edd5cca0403b9680b0670a525bb1daaecb67bb 127.0.0.1:7006
>>> slots: (0 slots) slave
>>> replicates 1055f56ef021cd435c9c3a22daff5357d2954d0c
>>> S: 3856c36f88d26f12aecc7101eb74f2d7fa574b70 127.0.0.1:7004
>>> slots: (0 slots) slave
>>> replicates b3c98313043174194ce7695e453fc69787214243
>>> M: cb7c0bbe8da017b5a883f42f5bd7bb11b9e0fdd5 127.0.0.1:7002
>>> slots:5461-10922 (5462 slots) master
>>> 1 additional replica(s)
>>> [OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
>>> [OK] All 16384 slots covered.