redis集群部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29791231/article/details/74983524
一、安装redis并启动


一二三步都是在一台linux上安装完成的,不是真正意义上的分布式集群
1.这里安装的是redis源码包,所以需要gcc环境支持:
yum install -y gcc-c++
2.从redis官网下载stable版包,如redis-3.2.9.tar.gz,上传至 /usr/local
然后解压
tar -zxvf redis-3.2.9.tar.gz
进入目录后进行编译:
cd /usr/local/redis-3.2.9
修改redis.conf IP地址
bind 192.168.186.132
make
make PREFIX=/usr/local/redis install 
cp -r redis.conf /usr/local/redis/bin
3.修改redis.conf配置文件, 修改为daemonize yes(位置:128,1    10%) 以后端模式启动。
4.执行如下命令启动redis:
   cd /usr/local/redis
   ./bin/redis-server redis.conf 


二、redis集群配置


1.ruby环境
  redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:
     安装ruby
     yum install -y ruby
     yum install -y rubygems
      安装ruby和redis的接口程序
             gem install redis
2.集群结点规划:  
   这里在同一台服务器用不同的端口表示不同的redis服务器,如下:
 主节点:192.168.186.132:7001 192.168.186.132:7002 192.168.186.132:7003
 从节点:192.168.186.132:7004 192.168.186.132:7005 192.168.186.132:7006


    在/usr/local下创建redis-cluster目录,其下创建7001、7002。。7006目录,如下:
    mkdir redis-cluster
    cd redis-cluster
    mkdir 7001
    mkdir 7002
    mkdir 7003
    mkdir 7004
    mkdir 7005
    mkdir 7006
 3.将redis安装目录bin下的文件拷贝到每个700X目录内,同时将redis源码目录src下的redis-trib.rb拷贝到redis-cluster目录下:
 cd /usr/local/redis
 cp -r bin/ /usr/local/redis-cluster/7001/
 cp -r bin/ /usr/local/redis-cluster/7002/
 cp -r bin/ /usr/local/redis-cluster/7003/
 cp -r bin/ /usr/local/redis-cluster/7004/
 cp -r bin/ /usr/local/redis-cluster/7005/
 cp -r bin/ /usr/local/redis-cluster/7006/
 
 cd /usr/local/redis-3.2.9
 cp -r redis.conf /usr/local/redis-cluster/7001/bin
 cp -r redis.conf /usr/local/redis-cluster/7002/bin
 cp -r redis.conf /usr/local/redis-cluster/7003/bin
 cp -r redis.conf /usr/local/redis-cluster/7004/bin
 cp -r redis.conf /usr/local/redis-cluster/7005/bin
 cp -r redis.conf /usr/local/redis-cluster/7006/bin


 cd /usr/local/redis-3.2.9/src/
 cp -r redis-trib.rb /usr/local/redis-cluster/
4.修改每个700X目录下的redis.conf配置文件:
   bind IP地址                                     --修改成本地IP地址(如虚拟机192.168.186.132)
   port XXXX                                       --修改成对应目录号即可
   cluster-enabled yes
   启动每个节点redis服务   
   分别进入7001、7002、...7006目录,执行:
   ./redis-server redis.conf
  
三、创建集群


1.执行创建集群命令
在/usr/local/redis-cluster/
执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。

./redis-trib.rb create --replicas 1 192.168.186.132:7001 192.168.186.132:7002 192.168.186.132:7003 192.168.186.132:7004 192.168.186.132:7005  192.168.186.132:7006

注意:
如果执行时报如下错误:
[ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0
解决方法是删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb



2.查询集群信息
集群创建成功登陆任意redis结点查询集群中的节点情况
cd /usr/local/redis-cluster/7001/bin

./redis-cli -h 192.168.186.132 -p 7001



四、分布式集群部署
redis集群至少一般用三台服务器,每台服务器上创建两个节点,属于分布式;其它少于三台部署的集群都是伪分布式。
针对这种部署方式只需分别在三台服务器上创建两个节点,配置同上所述,配置完成后再任意一台服务器进入/usr/local/redis-cluster/目录下,执行
./redis-trib.rb create --replicas 1 IP1:port1 IP1:port2  IP2:port3 IP2:port4 IP:3:port5 IP3:port6
注意这里的IP:port包含三台服务器的六个节点

没有更多推荐了,返回首页