redis+主从复制+集群配置

       redis是一个key-value存储系统。和memcached类似,不过redis支持的value类型更多,主要有:string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)redismemcached一样,为了保证效率,都是把数据缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件,并且在此基础上实现master-slave主从同步。

下面就来实现主从复制和集群,集群是建立在主从复制的基础之上的。首先准备三台虚拟机,分别为:

#VM1: ip=172.25.10.8

#VM2: ip=172.25.10.9

#VM3: ip=172.25.10.10

一:redis在三台虚拟主机上的安装:

#yum install -y gcc gcc-c++         ;安装编译软件

#cd redis/

#tar -zxf redis-3.0.2.tar.gz             ;解压软件包

#cd redis-3.0.2                               ;进入解压的目录

#make ---> #make install               ;直接编译并且安装

#cd utils/                                         ;进入此util目录,执行下面的脚本。配置并启动程序

#./install_server.sh

redis+主从复制+集群配置_第1张图片

#netstat -antlpe | grep redis             ;可以查看redis使用的端口号为6379

#redis-cli                                         ;redis客户端的使用命令


    >set no1 1234                                 ;将键no1添加键值1234 


    >get no1                                           ;获得no1的键值;


启动三台虚拟机上的redis服务;配置两台SLAVE主机上的配置文件,作主从复制;

SLAVE:VM2  VM3

VM2 #vim /etc/redis/redis-6379  

    slaveof   172.25.10.8 6379   ;添加MASTER的ip和port号。


VM3 #vim /etc/redis/redis-6379  /

    slaveof   172.25.10.8 6379

VM2、VM3分别重启redis服务;

# /etc/init.d/redis-6379  restart


然后进行验证:在MASTER上使用命令行redis-cli输入键值对(redis-cli  --> set no1 1234),然后在两台SLAVE主机上进行验证,直接获取键值(redis-cli  --> get no1).如果都能得到统一数值,这表明主从复制同步成功。或者在MASTER上这样验证:redis-cli -->info

redis+主从复制+集群配置_第2张图片

出现上图则表明主从复制成功。


集群服务配置,有效解决单点故障;

#cd /root/ redis-3.0.2

#vim  sentinel.conf

#grep -v ^# sentinel.conf      ;修改配置如下图

    redis+主从复制+集群配置_第3张图片

#grep -v ^# sentinel.conf > /etc/sentinel.conf

#scp /etc/sentinel.conf [email protected]:/etc/   将配置好的文件直接传送到两个SLAVE机上面,

#scp /etc/sentinel.conf [email protected]:/etc/ 


启动三台虚拟主机的哨兵进程;

VM1、VM2、VM3:

# redis-sentinel  /etc/sentinel.conf

redis+主从复制+集群配置_第4张图片

出现上面的图形代表哨兵已经启动,如果无法启动可能是因为哨兵的配置文件没有给写权限(W)。

redis+主从复制+集群配置_第5张图片


最后验证MASTER停止掉,然后就是SLAVE进行接管。