1.手把手教你搭建Redis集群一(主从复制模式)
Redis集群策略有三种:主从复制(读写分离)、哨兵模式、分片集群。接下来本文章将会带搭建主从复制模式,这里我们使用的是阿里云服务器,由于资源有限我就在一台宿主机上将模拟一下集群搭建。与实际生产搭建还是有些细微的差异,真实环境搭建需要注意的地方我会提醒大家。
本次搭建环境为Linux CentOS7.0(需要大家自己学习Liunx基本命令操作)
Redis 版本号为 redis-3.0.2
1.1 安装Redis
解压redis tar包
tar -zxvf redis-3.0.2.tar.gz
解压完成
进入目录
cd redis-3.0.2
编译
make
安装
启动单机Redis
./redis-server 这里需要到 注:/usr/local/src/redis-3.0.2/src 目录
Redis搭建已经完毕接下来我们要开始大家主从复制模式下的Redis
1.2 搭建Redis 主从复制模式(读写分离)
首先我们先创建三个文件夹用于存放他们各自的配置文件(redis.conf)已经数据存储文件
mkdir cluster-7001
mkdir cluster-7002
mkdir cluster-7003
然后先将Redis配置文件设置城默认后台启动,在分配复制到以上三个文件夹当中
分别进行复制
cp redis.conf ../cluster-7001/
cp redis.conf ../cluster-7002/
cp redis.conf ../cluster-7003/
然后分别修改三个配置文件,主要是将其中的端口、pidfile 文件的目录进行修改
接下来配置主从关系,只需要在从服务器的redis.conf 中将主服务器的ip和端口配置上即可
到这里我们就配置完成了,接下来启动集群服务器(根据配置文件进行启动)
./redis-server /usr/local/src/cluster-7001/redis.conf
./redis-server /usr/local/src/cluster-7002/redis.conf
./redis-server /usr/local/src/cluster-7003/redis.conf
查询redis进程
ps -ef | grep redis
接下来我们进行测试进入Redis查看主从信息
./redis-cli -p 7001
到这里大家可以看到127.0.0.1:7001 主服务
到这里大家可以看到127.0.0.1:7002 从服务
到这里大家可以看到127.0.0.1:7003 从服务
role:角色
connected_slaves:从库数量
slave0:从库信息
1.3 测试主从复制
1、 当从库和主库建立MS关系后,从库会向主数据库发送PSYNC命令;
2、 主库接收到PSYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存起来;
3、 当快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis;
4、 从Redis接收到后,会载入快照文件并且执行收到的缓存的命令;
5、 之后,主Redis每当接收到写命令时就会将命令发送从Redis,从而保证数据的一致;
首先我们现到主服务器写入数据
然后再到从服务器看看有没有这条数据
至此我们已经看到数据已经同步过去了,但是发现一个问题 从数据不能进行写入操作,默认情况下redis数据库充当slave角色时是只读的不能进行写操作,可以在配置文件中开启非只读:slave-read-only no
怎么样是不是发现很简单,在下篇文章中我将会带领大家搭建Redis集群之哨兵模式(sentinel)。