[狗尾续貂第三篇]Redis Sentinel

写在前面

最近在看lifetragedy的亲密接触redis的一些列三篇博客。在仿照第二篇redis sentinel的一篇自己做的过程中遇到了几个小问题,这里把他们写出来。

文章原文的地址在这里:亲密接触Redis-第二天(Redis Sentinel)

sentinel的配置文件在哪里

之前部署过redis单机的节点,在部署的时候,习惯了把redis.conf拷贝到安装后的bin目录里面。所以在部署sentinel的时候也是如法炮制,把redis.conf拷贝过去了,然后怎么也找不到博客里面给出来的配置项,硬生生的配置上去之后,sentinel总是启动不起来。

正常启动起来之后,终端会进入sentinel的日志输出状态,而不会直接返回到命令行输入状态,也就是下面这样:

[狗尾续貂第三篇]Redis Sentinel_第1张图片

redis在源文件中提供了sentinel的配置模板文件,名字是sentinel.conf,部署sentinel的时候需要拷贝这个文件到bin目录下,然后进行修改。

我在虚拟机里面启动好了redis和sentinel但是在虚拟机外的web程序就是访问不了?

在部署的时候,我的sentinel配置中把监控的master地址写的是127.0.0.1 7001,所以在虚拟机外的web程序上总是显示,获取不到连接。

这里应该写master的网卡地址,因为sentinel直接返回给应用层的redis节点访问地址就是127.0.0.1,所以应用层链接不成功。(由于redis的一般是用在内网环境的,如果用在外网环境下它的速度可能还不如数据库的速度快,使用的时候要特别注意)

sentinel是不是就成了一个单点了?

因为lifetragedy的博客里面给的配置是2个redis节点,一个sentinel节点,但是我就在想这样的话sentinel挂了,不就redis也访问不了了嘛,也就是sentinel成了单点了嘛。

其实,不然sentinel是可以多节点部署的,想部署多少个都可以。配置方式和第一个sentinel的配置方式一样,然后启动就可以了。

在应用层怎么办呢?怎么识别出来有多个sentinel可用呢?关键点就在下图的箭头位置,这里是一个set,可以指定多个sentinel的链接信息。

[狗尾续貂第三篇]Redis Sentinel_第2张图片

一小段时间后redis为什么自动宕机了?

看到lifetragedy的博客里写的,在redis主备切换的时候,才千分之几的请求失败率,赶紧试一下呗。但是,为什么我的redis用博主的示例程序跑一会就自动主从切换,宕机了呢?

郁闷的是,从redis的日志里也看不出来什么。。。这时候,你可以看/var/log/messages文件,里面是系统级的错误日志,有点类似于windows系统的系统日志。从日志里看到了这么一段,才明白原来是内存的问题。我的虚拟机开的内存是2G,总共的剩余可用内存是700多兆。但是博主给的示例是每次请求插入1000个键值对,接近50K的空间,不到1万个请求我的内存就妥妥的不够了。

人家博主自己的虚拟机是用了4G的内存,要么是笔记本配置超高,要么就是人家有服务器给用来做虚拟化,。。。。

/var/log/messages里面的错误日志是这样的:

[狗尾续貂第三篇]Redis Sentinel_第3张图片

你可能感兴趣的:(狗尾续貂)