搭建redis集群
Posted Mlxg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建redis集群相关的知识,希望对你有一定的参考价值。
redis主从复制原理:
主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。
redis复制过程如下:
1、slave server启动连接到master server之后,salve server主动发送SYNC命令给master server
2、master server接受SYNC命令之后,判断,是否有正在进行内存快照的子进程,如果有,则等待其结束,否则,fork一个子进程,子进程把内存数据保存为文件,并发送给slave server
3、master server子进程进程做数据快照时,父进程可以继续接收client端请求写数据,此时,父进程把新写入的数据放到待发送缓存队列中
4、slave server 接收内存快照文件之后,清空内存数据,根据接收的快照文件,重建内存表数据结构
5、master server把快照文件发送完毕之后,发送缓存队列中保存的子进程快照期间改变的数据给slave server,slave server做相同处理,保存数据一致性
6、master server 后续接收的数据,都会通过步骤1建立的连接,把数据发送到slave server
需要注意:slave server如果因为网络或其他原因断与master server的连接,当slave server重新连接时,需要重新获取master server的内存快照文件,slave server的数据会自动全部清空,然后再重新建立内存表,这样会让slave server 启动恢复服务比较慢,同时也给master server带
来较大压力,可以看出redis的复制没有增量复制的概念,这是redis主从复制的一个主要弊端,在实际环境中,尽量规避中途增加从库
1. 安装依赖包和依赖环境 yum install gcc-c++ ruby rubygems 2. 官网下载redis和ruby 解压安装 tar xzf redis-3.2.9.tar.gz ---> cd redis-3.2.9 make prefix=/usr/local/redis --->指定redis安装目录 tar xzf ruby-2.2.10.tar.gz --->注意ruby与redis的版本,亲测这个两个版本可以使用 cd ruby-2.2.10 ./configure && make && make install
gem install redis --->安装ruby和redis的接口程序
3. mkdir -p /redis-cluster/900{1..6}
\\cp -rf /usr/local/bin/* /redis-cluster/9001 /redis-cluster/9002 .../redis-cluster/9006
cp /root/redis-3.2.9/redis.conf /redis-cluster/9001 /redis-cluster/9002 ...
/redis-cluster/9006
cp /root/redis-3.2.9/src/redis-trib.rb /redis-cluster
修改每个900X文件下的redis配置
daemonize yes --->后台运行
port XXXX
cluster-enabled yes
build 修改为本机外网ip
4. 分别启动每个节点redis服务
要分别进去对应的900X目录执行 注意:一定要进入对应的900X目录执行才行,否则只能启动一个redis
./redis-server ./redis.conf
ps -ef | grep redis 查看进程启动情况
5. 集群结点规划 这里在同一台服务器用不同的端口表示不同的redis服务器,如下: 主节点:122.114.79.34:9001 122.114.79.34:9002 122.114.79.34:9003 从节点:122.114.79.34:9004 122.114.79.34:9005 122.114.79.34:9006 cd /redis-cluster 执行创建集群命令: replicas指定为1标识每个主节点有一个从节点 gem install redis --- ./redis-trib.rb create --replicas 1 122.114.79.34:9001 122.114.79.34:9002 122.114.79.34:9003 122.114.79.34:9004 122.114.79.34:9005 122.114.79.34:9006
6. 客户端连接查看集群信息 cd /redis-cluster/900X ./redis-cli -c -h ip -p 端口 --(-c以集群的方式连接,-h指定ip,-p指定端口,如果有密码使用-a来指定密码) CLUSTER info
7. 向集群中添加节点 准备一个干净的节点,按照集群的方式修改配置文件,之后启动节点 执行命令,添加节点--->连接一台查看集群信息cluster info ./redis-trib.rb add-node 122.114.79.34:9007 122.114.79.34:9001
以上是关于搭建redis集群的主要内容,如果未能解决你的问题,请参考以下文章