Redis集群搭建与简单使用
也许有人会问,我们有了哨兵模式,怎么还要设置集群模式呢。如果我们用哨兵模式,如果master节点,死掉了,如果网络,或者机器不好,切换master大概就需要1~2秒,在redis中,如果机器比较好,1~2秒写10W条数据,是没问题的,所以这样我们就可能丢失大量的数据。只能在java代码中避免闪段的问题。
介绍安装环境与版本
我用了三台虚拟机模拟6个节点,一台机器2个节点,创建出3个master、3个salve 环境。
redis 采用 redis-4.0.1 版本。
上台台虚拟机都是 CentOS ,一台 CentOS7 (IP:192.168.3.231),一台 CentOS7(IP:192.168.3.232) ,一台 CentOS7(IP:192.168.3.233) 。
我前面介绍了,Redis哨兵模式的安装,那么我就不介绍怎么,下载和编译在本机的redis了。如果还未下载,请查看http://blog.youkuaiyun.com/u014182745/article/details/76294146
1、创建文件夹,存放redis的配置文件和数据文件。
到redis目录下去
cd /zdq/redis-4.0.1/
//创建文件夹
mkdir redis_cluster
//到主目录
cd redis_cluster
//创建两个节点的数据文件和配置文件
mkdir 7001
mkdir 7002
2、拷贝配置文件。
将 redis.conf 拷贝到这三个目录
//转到redis主目录
cd /zdq/redis-4.0.1
//拷贝配置文件
cp redis.conf /zdq/redis-4.0.1/redis_cluster/7001
//拷贝配置文件
cp redis.conf /zdq/redis-4.0.1/redis_cluster/7002
3、分别修改这两个配置文件(redis.conf),修改如下内容
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
port 7001 //端口7001,7002
daemonize yes //redis后台运行
pidfile /var/run/redis_7001.pid //pidfile文件对应7001,7002
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7001.conf //集群的配置 配置文件首次启动自动生成
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
4、拷贝到不同的服务器上,并且修改配置文件
//拷贝
scp -r /zdq/redis-4.0.1/redis_cluster root@192.168.3.232: /zdq/redis-4.0.1/redis_cluster
//拷贝
scp -r /zdq/redis-4.0.1/redis_cluster root@192.168.3.233: /zdq/redis-4.0.1/redis_cluster
安装ruby(因为redis集群是ruby实现的)
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
5、修改配置文件,修改7001和7002下面的redis.conf里面的绑定(bind)的地址。
好了,我们集群的配置文件已经改完。接下来我们就是运行了。
分别在三台机器的redis主目录下,启动:
./src/redis-server ./redis_cluster/7001/redis.conf
./src/redis-server ./redis_cluster/7002/redis.conf
在三台机器分别启动。
查看端口状态
//如果出现有7001和7002端口的,便表示启动成功。
ps -ef | grep redis
6、运行集群
在三台机器任意一台,进入redis的主目录,运行。
./src/redis-trib.rb create --replicas 1 192.168.3.231:7001 192.168.3.231:7002 192.168.3.232:7001 192.168.3.232:7002 192.168.3.233:7001 192.168.3.233:7002
前三个是master,后三个是salve
当你看到:
恭喜您,离成功只差3个字母了,yes。
在屏幕上输入:yes。
启动完成。
7、到此为止我们的集群搭建成功!进行验证:
(1) 连接任意一个客户端即可:
./src/redis-cli -c -h 192.168.3.231 -p 7001(-c表示集群模式)
(2)进行验证cluster info(查看集群信息)、cluster nodes(查看节点列表)
(3)关闭集群则需要逐个关闭,使用命令:
./src/redis-cli -c -h 192.168.3.231 -p 7001 shutdown
友情提示:当出现集群无法启动时,删除临时的数据文件,再次重新启动每个redis服务,然后重新构建集群环境。