5
点赞
0
评论
0
转载

Redis主从数据库搭建

   首先普及一下什么是Redis,其实就是一个数据库,只不过它是以Key-Value的数据形式存储数据而已,多用来做为缓存高访问量的数据,通过主从读写分离、搭建集群使得高并发访问环境下,系统有较好的稳定性。下面是我搭建主从集群的方法,欢迎提意见。

一、Redis安装:

1.下载Redis

    官方网站上下载redis-3.0.1,地址:

    http://download.redis.io/releases/redis-3.0.1.tar.gz

2.解压文件:

    tar -zxvf redis-3.0.1.tar.gz

3.编译安装:

    进入目录:cd redis-3.0.1

    执行命令:make

              make install

    注:执行成功后会生成四个可执行文件,文件存放的目录在/usr/local/bin中,分别是: 

    redis-benchmarkredis-cliredis-serverredis-stat

    Redis运行所需要的配置文件redis.conf,存放的目录在/etc

4.运行Redis:

    执行命令:/usr/local/bin/redis-server /etc/redis.conf

             redis-cli  ##进入redis命令操作工具

             set name yangzx   ##存储数据

             get name     ## 获取对应变量值

    注:显示界面如下,则配置成功:


    

二、主从配置

    实验是在一台虚拟机上设置的,因此使用了多个Redis实例,通过复制多份redis.conf可以生成多个不同的实例,与在多台机器上配置是一致的。

1.复制配置文件redis.conf

    执行命令:cp  /etc/redis.conf  /etc/redis6380.conf  ##复制配置文件并重命名

              sudo  vi  /etc/redis6380.conf  ##打开配置文件,查看内容并修改

    修改内容,将port修改为6380,配置ReplicationslaveofmasterIPPORT,具体如下:

    port 6380

    slaveof 127.0.0.1 6379

    按照如上的步骤,配置第三个Redis实例,端口号为6381

2.启动三个Redis实例:

    执行命令:/usr/local/bin/redis-server /etc/redis.conf

              /usr/local/bin/redis-server /etc/redis6380.conf

              /usr/local/bin/redis-server /etc/redis6381.conf

    这样就启动了端口号分别为6379,6380,6381三个Redis

3.测试读写分离:

    执行命令:redis-cli -p 6379  ##进入端口号为6379Redis实例(master

              set name yangzx

              get name

              quit  ##退出当前Redis,可以使用快捷键ctrl+c直接退出

    运行界面如下:

    执行命令:redis-cli -p 6380  ##进入端口号为6380Redis实例(slaver

              get name   ##测试是否能获得master存储的数据

              set name yangzhenxiong   ##测试是否能在slaver上进行写数据

    运行界面如下:

    对于另一个slaver 6381,其运行情况与6380一样。

三、Redis-Sentinel配置

    Redis-Sentinel可以监控多个master-slave集群,发现master宕机后能进行自动切换。

1.配置sentinel文件:

    redis-3.0.1.tar.gz的解压文件夹redis-3.0.1中有一个sentinel.conf文件,将其复制到/etc下,进行配置。

    执行命令:cp  /home/yzx/download/redis-3.0.1/sentinel.conf  /etc

              sudo vi /etc/sentinel.conf  ##查看配置文件的内容,需要修改的内容不多

    主要配置:sentinel monitor mymaster 127.0.0.1 6379 1 ,这里是配置master的信息,不需要配置slave的信息,通过监测master就能获得所有slave的信息了。

其余配置可以使用默认配置,有:

sentinel down-after-milliseconds mymaster 60000  ##可以将时间设短点,缩短实验时间
sentinel failover-timeout mymaster 180000


2.测试redis sentinel主从切换:

    首先启动之前配置的三个Redis实例,端口号6379master),6380slave),6381slave

    执行命令:ps ax|grep redis    ##查看redis的运行情况

              redis-cli -p 6379    

              info replication     ##查看当前masterslave的情况

              redis-sentinel /etc/sentinel.conf --sentinel  ##启动sentinel,必须重新打开新

                                                  ##的终端运行该命令

    测试slave6380)节点断开后的情况,回到运行Redis实例的终端:

    执行命令:redis-cli -p 6380 shutdown  ##切换到sentinel终端进行观察

              /usr/local/bin/redis-server /etc/redis6380.conf   ##重新启动,并观察

    测试master6379)节点断开后的情况:

    执行命令:redis-cli -p 6379 shutdown  ##切换到sentinel终端进行观察

    由于master宕机,sentinel进行了自我选举,产生了新的master 6381

    执行命令:redis-cli -p 6381

              info replication ##查看主从集群状态

    可以观察到目前集群的master6381,只有一个slave 6380。我们再次启动6379Redis实例,看看效果如何:

    执行命令:/usr/local/bin/redis-server /etc/redis.conf   ##重新启动,并观察

             redis-cli -p 6381

             info replication ##查看主从集群状态

可以观察到新增加6379变成了slave,其master6381



安信证券股份有限公司 信息技术中心
SCHOLAT.com 学者网
免责声明 | 关于我们 | 联系我们
联系我们:
返回顶部