文件:https://pan.baidu.com/s/1tWZ2Rq_BvSIeXhZ3umsJWA 9g8a
系统的文件目录
|- /etc
|- /redis # 存放配置文件,按端口名命名
|- 7001.conf
|- /redis-cluster # 存放 redis 集群维护的配置文件目录
|- /init.d
|-/redis_7001 # 启动脚本
|- /var
|-/log/redis # 存放日志文件
|-/7001.log # 日志文件
|-/redis/7001 # 存放数据文件
集群 redis cluster: master+slave 复制和读写分离/高可用和主备切换 都是自动支持的,支持多个 master 的 hash slot 支持数据分布式存储
正式环境下,建议都是说在 6 台机器上去搭建,至少 3 台机器,保证每个 master 都跟自己的 slave 不在同一台机器上,如果是 6 台自然更好
3 台机器去搭建 6 个 redis 实例的 redis cluster
hostname | 配置文件 |
eshop-cache01 | 7001.conf、 7002.conf |
eshop-cache02 | 7003.conf、 7004.conf |
eshop-cache03 | 7005.conf、 7006.conf |
什么,连3台机器都没有? 创建3台虚拟机好吧。根据《搭建简易的缓存架构-搭建redis集群-搭建第一个redis单机》,3台虚拟机都搭建一个redis单机
其实每台机器配置都是差不多,要修改的会标注,现在只说明一台机器操作。先停掉之前搭建的单机redis。
(1)
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7001
# 复制默认配置文件,并修改
cp /usr/local/redis-3.2.8/redis.conf /etc/redis/7001.conf
# 复制启动脚本,需要 6 个启动脚本 ,里面的 REDISPORT=7001 需要修改成和文件名对应的端口
cp /usr/local/redis-3.2.8/utils/redis_init_script /etc/init.d/redis_7001
备注说明redis.conf 修改的地方下列(具体的,7001.conf、7002.conf..7006.conf有上传,每个文件都跟自己的机器对应比如bind)
port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
bind 192.168.1.5
appendonly yes
(2)配置集群运行环境(只装一台就可以了,创建集群的那台)
配置这个环境挺操蛋的,主要是从git上下载对应的国外项目被墙了(推荐第三种)。
第一种:
yum install -y ruby
yum install -y rubygems
gem install redis
这是一种方式,这个有可能会被墙或者版本低。
第二种是(相关文件会上传):
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -zxvf ruby-2.3.1.tar.gz
./configure -prefix=/usr/local/ruby
make && make install
cd /usr/local/ruby
cp bin/ruby /usr/local/bin
cp bin/gem /usr/local/binwget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l ./redis-3.3.0.gem
gem list --check redis gemsudo gem install ./redis-3.3.0.gem -n /usr/local/bin
gem install -l ./redis-3.3.0.gem
上面无论是那种情况都会有问题,根据自己的实际情况来解决
//如遇到问题
gem install redis --version
ERROR: Error installing redis:
redis requires Ruby version >= 2.3.0.
卸载
类似于curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ruby --rails --trace 被墙
当时是搞了很久,当时的解决思路是,版本低,安装rvm进行ruby版本控制, 最后安装不了rvm就删除已安装的ruby,就手动安装,遇到问题即时解决。
第三种
这位大兄弟也有相关安装Ruby的安装的操作。
https://zq99299.github.io/note-book/cache-pdp/redis/028.html#%E5%88%9B%E5%BB%BA%E9%9B%86%E7%BE%A4
# 不要直接使用此命令安装,因为安装的是低版本的。参考本文后面的 Ruby 的安装
yum install -y ruby
# 不要使用 yum 安装,在 centos 6 中只会安装 1.8 版本的,并且连 ruby 也一起安装的
yum install -y rubygems
# 前面的安装请参考 本文后面的 Ruby 安装
gem install redis
(3)复制redis-trib.rb ,让 redis-trib.rb 工具不在具体目录下也可以使用,和 windows path 效果类似
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
(4)启动6个是redis实例
# 通过之前一样的命令启动 6 个实例 ,3台机器 7001 7002 7003 7004 7005 7006
/etc/init.d/redis_7001 start
# 查看日志是否启动正常,现在配置了日志文件的
cat /var/log/redis/7001.log
(4)创建集群(启动完6个实例后,在一台机器上启动就可以了)
# 创建集群,注意这里需要使用 ip 地址,否则不成功
# --replicas: 每个 master 有几个 slave
# 6 台机器,3 个 master,3 个 slave,尽量自己让 master 和 slave 不在一台机器上 -a redis-pass
redis-trib.rb create --replicas 1 192.168.1.5:7001 192.168.1.5:7002 192.168.1.6:7003 192.168.1.6:7004 192.168.1.7:7005 192.168.1.7:7006
(5)集群查看
redis-trib.rb check 192.168.1.5:7001
至此完成集群搭建。
备注我有在client.rb 文件设置有集群密码
/usr/local/ruby/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/client.rb
文章说明: