虚拟机搭建Redis Cluster集群

656 阅读3分钟

开门见山的说

redis3.0以后推出redis cluster 集群方案,redis cluster集群保证了高可用、高性能、高可扩展性。拿我们没道理不来玩一下这个集群

说明:

  • 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
  • 节点的fail是通过集群中超过半数的节点检测失效时才生效.
  • 户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
  • redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

开始搭建

首先说明,使用的环境是ubuntu16.4,按理来说centos也没啥问题

在local文件夹里创建项目

mkdir software

进入项目


cd /usr/local/software/

下载redis安装包

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

下载完成后我们正式开始安装

安装部署redis

解压文件夹

tar zxvf redis-5.0.5.tar.gz

重命名文件夹

mv redis-5.0.5 redis

安装redis

make && make install

假如安装过程中出现了错误,十有八九是没有gcc的锅,安装一个就可以了

yum install gcc

redis配置文件部署

安装完成后,进入redis下的src文件夹,将redis-trib.rb 复制到 /usr/local/bin


cd /usr/local/software/redis/src
cp redis-trib.rb /usr/local/bin

然后进入local下,创建一个redis-cluster文件夹,这里放redis节点(由于是一台服务器,所以一台服务器上创建六个节点来模拟集群)

cd /usr/local/
mkdir redis-cluster

然后进入redis-cluster,创建六个节点文件,redis1-redis6

cd redis-cluster/
mkdir redis1 redis2 redis3 redis4 redis5 redis6

然后进入每个节点文件,创建data和logs文件,

cd redis1
mkdir data logs

接着复制redis目录下的redis.conf到每个节点文件中

cp redis.conf /usr/local/redis-cluster/redis1

然后进入src目录,继续复制redis-cli,redis-server

cp redis-cli redis-server   /usr/local/redis-cluster/redis1

修改配置文件

分别进入到每个节点文件下,修改redis.conf的信息

cd /usr/local/redis-cluster/redis1
vi redis.conf

修改内容为

port  7001 //端口7001,7002,7003,7004,7005,7006        
bind 192.168.11.11 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /usr/local/redis-cluster/redis1/redis_7001.pid //pidfile文件对应7001,7002,7003
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7001.conf //集群的配置 配置文件首次启动自动生成 7001,7002,7003
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes  //开启aof
logfile "/usr/local/redis-cluster/redis1/logs/redis_7001.log" //配置日志输入路劲  7001 7002 7003
dir "/usr/local/redis-cluster/redis1/data"  //配置数据文件存放路劲

修改完成后,进行下一步

运行redis

cd /usr/local/redis-cluster/redis1
./redis-server redis.conf

执行完成后,查看redis启动情况,指令如图

创建集群

redis新版本使用c代替了ruby的启动方式,所以直接使用新版本命令启动就完事了

redis-cli --cluster create 192.168.80.241:7001 192.168.80.241:7002 192.168.80.241:7003 192.168.80.241:7004 192.168.80.241:7005 192.168.80.241:7006 --cluster-replicas 1

至此一个redis集群就搭建完成了

验证

# 连接其中一个redis节点
/usr/local/redis-cluster/redis1# redis-cli -c -h 192.168.80.241 -p 7001
# 判断是否在集群中
cluster nodes