Redis集群

                   

Redis集群_第1张图片

        Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

前天刚学的,现在就来装逼一波,顺便做下笔记。redis的下载安装点这里。

第一次写文章,可能表达不清楚。。。。。哈哈

现在的版本出到3.2.1了,但我用的是3.0.5,(因为是以前早就装了,偷个懒,基本都差不多)。


Redis集群_第2张图片
redis安装目录

下载解压编译安装之后,进入安装后的目录


进入

说到集群我也只是只菜鸟,redis根目录下有一个redis.conf。我们把它拷贝到其他地方,目的当然是启动不同端口的redis服务器了

我为了方便直接在/usr/local/ 下建立一个redis-server文件夹,拷贝到其中。为了方便我把redis目录src下的redis-server,redis-cli,redis-sentinel这3个东东,建立软连接放在redis-sever下具体看图


Redis集群_第3张图片
结构图

我把redis.conf 复制3份如上图所式的redis6379.conf ,redis6380.conf,redis6381.conf后面的数字代表的是启动的端口vim 修改3个配置文件只需要修改 port,daemonize,logfile,dbfilename这4个值


Redis集群_第4张图片
daemoize yes 代表后台启动,port是启动端口


Redis集群_第5张图片
生成的日志文件名


Redis集群_第6张图片
dbfilename 是备份文件名

接下来就是启动redis服务器了,然后连接客户端


Redis集群_第7张图片

开启3个客户端连接各个不同端口的服务器,身份都是master。


Redis集群_第8张图片
默认是0号库,并且数据都为空

通过slaveof ip 端口 的命令,把6380和6381当slave的身份。我现在是通过虚拟机本地测试


Redis集群_第9张图片

现在在6379端口设置值,我们测试在6380和6381端口能不能获取值


Redis集群_第10张图片
答案是可以的

当master服务器死机了,另外两个从服务器会不会争夺主呢(好像好多图了,我就不测试了,有兴趣的同学可以试试,把6379 shutdown 然后看看另外两个的身份,然后当主机又重启的时候又会发生什么。或者从机shutdown,重启之后又是怎样的,有兴趣的同学自己测试测试,如果我把答案说出来了,自己不动手,还是会忘记的)

接下来呢,咱们来讲讲“哨兵模式

貌似挺长的呢,不知道有没有人能看下来,文采不够,表达不够清楚,自己也挺郁闷的,怪我读书少,我女机油说,人丑要多读书,但我人应该不丑,所以读书有点少。。哈哈,跑题了。

哨兵模式简单的说呢,就是反客为主,就是主机死了,从所有从机中选出一个主机,我们在redis6379.conf 的同目录下创建一个sentinel.conf

$ vim sentinel.conf

编辑内容如下:sentinel monitor localhost6379(这里随便取一个主机的名字)  127.0.0.1 6379 1,如下图


Redis集群_第11张图片

保存并退出

这内容的简单意思:就是监控6379这主机挂了的时候,从机来投票,谁得票数多谁就是主机!

启动哨兵


Redis集群_第12张图片
哨兵

如果如上图所示,说明启动成功

现在我们让6379死机,看一下哨兵会发生什么


Redis集群_第13张图片
关闭主机

看看哨兵的情况,是否发生变化


Redis集群_第14张图片
哨兵信息

我们可以看到6381变成主机了


Redis集群_第15张图片

然后当6379启动的时候,变成了从机,而不是主机了


Redis集群_第16张图片

好多图,我怕发不出去就亏大发了,笔记放这了,忘记的时候回来看看!!!

你可能感兴趣的:(Redis集群)