redis集群搭建

前面说了redis的安装和redis的数据类型,今天简单的说下redis集群的搭建。 redis集群中至少应该有三个节点,为了保证集群的高可用,需要每个节点都有个备份机,所以redis集群至少6台服务器。 我们没有6台服务器,但是可以搭建伪分布式,可以使用一台虚拟机运行6个redis实例,保证端口号不同即可。

一、使用ruby脚本搭建集群。需要ruby的运行环境。 安装ruby yum install ruby yum install rubygems

二、安装ruby脚本运行使用的包。

[root@localhost ~]# gem install redis-3.0.0.gem Successfully installed redis-3.0.0 1 gem installed Installing ri documentation for redis-3.0.0… Installing RDoc documentation for redis-3.0.0… [root@localhost ~]# [root@localhost ~]# cd redis-3.0.0/src [root@localhost src]# ll *.rb -rwxrwxr-x. 1 root root 48141 Apr 1 2015 redis-trib.rb

三.搭建集群

1.首先创建集群目录redis-cluster

makdir /usr/local/redis-cluster

2.将之前安装好的redis文件复制6份(redis01,redis02….redis06)到redis-cluster文件夹中

3.修改配置文件redis.conf 先把redis配置文件复制到redis-cluster中

cp /usr/local/redis3.0/redis.conf /usr/local/redis-cluster

修改配置文件redis.conf

vim redis.conf

修改以下的配置

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到redis01/redis02/redis03/redis04/redis05/redis06目录下面

cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis01 cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis02 cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis03 cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis04 cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis05 cp /usr/local/cluster/redis.conf /usr/local/redis-cluster/redis06 同时把复制的每个redis.conf中的port改为对应的端口号7000,7001,7002,7003,7004,7005

4.启动6个redis实例

cd /usr/local/redis-cluster/redis01

redis-server redis.conf

cd /usr/local/redis-cluster/redis02

redis-server redis.conf

cd /usr/local/redis-cluster/redis03

redis-server redis.conf

cd /usr/local/redis-cluster/redis04

redis-server redis.conf

cd /usr/local/redis-cluster/redis05

redis-server redis.conf

cd /usr/local/redis-cluster/redis06 redis-server redis.conf 启动后可通过:ps-aux|grep redis来查看进程

5.使用ruby脚本搭建集群

./redis-trib.rb create –replicas 1 192.168.25.133:7000 192.168.25.133:7001 192.168.25.133:7002 192.168.25.133:7003 192.168.25.133:7004 192.168.25.133:7005

6.连接集群 redis01/redis-cli -p 7002 -c

-c:代表连接的是redis集群.

遇到的问题:

[ERR] Node 192.168.25.133:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决办法:删除redis文件下的dump.rdb,nodes.conf文件重启。