文件: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的缓存 java redis缓存服务器搭建_不依赖redis的缓存 java

 

其实每台机器配置都是差不多,要修改的会标注,现在只说明一台机器操作。先停掉之前搭建的单机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  被墙

不依赖redis的缓存 java redis缓存服务器搭建_不依赖redis的缓存 java_02

当时是搞了很久,当时的解决思路是,版本低,安装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

不依赖redis的缓存 java redis缓存服务器搭建_不依赖redis的缓存 java_03

至此完成集群搭建。

备注我有在client.rb 文件设置有集群密码

/usr/local/ruby/lib/ruby/gems/2.3.0/gems/redis-3.3.0/lib/redis/client.rb
文章说明: