redis sentinel 高可用集群

redis是目前比较火爆的nosql开源软件。他因为丰富的数据类型和每秒80k+的速度对有高并发,大访问量要求的应用场景是很好的选择。我用redis主要用来做数据的cache。以及分布式系统中session的集中存储。为了解决redis的单点故障,提高redis的可靠性,以前的做法是用Keepalived来控制虚IP的浮动,来进行热备。随着redis2.8和3.0版本的诞生。目前官网支持sentinel模式的热备,sentinel是哨兵,不断监听目前redis的存活状态。整体采用一主多备的模式。读写分离。主节点可读可写,备节点只读。

部署:三台服务器,ip分别为192.168.0.2(master,sentinel),192.168.0.3(slave,sentinel),192.168.0.4(slave,sentinel)

1.选用redis的版本是3.0.4。单节点的部署不再赘述。网上百度/google一大片。

2.master节点部署好以后,两个备节点在配置文件中分别添加:

slaveof 192.168.0.2 6379

作为主节点的备用节点。

3.查看节点运行情况

redis-cli -h 192.168.0.2 -p 6379 info replication

4.部署sentinel

打开sentinel配置文件sentinel.conf

port 26379
sentinel monitor mymaster 192.168.0.2 6379 2  #j监控主节点,并且当2个sentinel节点认为master宕机时启动failover
sentinel down-after-milliseconds mymaster 5000 #master多久不可达的时候转换状态为S_DOWN
sentinel failover-timeout mymaster 900000 #预留一个主从切换的时间。如果这个时间之内没有完成主从切换则宣告切换失败。

5.启动sentinel

./bin/redis-sentinel ./conf/sentinel.conf --sentinel

按照上面的配置依次配置ip为192.168.0.3,192.168.0.4开启sentinel。

4.spring的整合。

我的开发架构中用了spring的spring-data-redis。相关配置文件如下:

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}"/>
        <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"/>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
    </bean>
    <bean id="redisSentinelConfiguration" class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
        <property name="master">
            <bean class="org.springframework.data.redis.connection.RedisNode">
                <property name="name" value="mymaster"/>
            </bean>
        </property>
        <property name="sentinels">
            <set>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.0.2"/>
                    <constructor-arg name="port" value="26379"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.0.3"/>
                    <constructor-arg name="port" value="26379"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.0.4"/>
                    <constructor-arg name="port" value="26379"/>
                </bean>
            </set>
        </property>
    </bean>
    <bean id="jedisConnFactory"
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg ref="redisSentinelConfiguration"/>
        <constructor-arg ref="jedisPoolConfig"/>
    </bean>
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnFactory"/>
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>
    </bean>

以上是redis的使用总结请大家多指教谢谢!

时间: 2024-10-16 11:42:46

redis sentinel 高可用集群的相关文章

部署redis主从高可用集群

部署redis主从高可用集群本文部署的redis集群是一主一从,这两台服务器都设置了哨兵进程,另外再加一台哨兵做仲裁,建议哨兵数量为基数172.16.1.187    redis主+哨兵172.16.1.188    redis从+哨兵172.16.1.189    哨兵以上系统均为CentOS6 在187,188,189上部署redis过程如下:(1)redis使用编译安装方式,所以需要安装编译基本组件# yum -y install gcc gcc-c++ make cmake cpp gl

redis专题之redis cluster高可用集群

1.redis cluster集群是什么? redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制.高可用和分片特性.Redis cluster集群不需要sentinel哨兵也能完成节点移除和故障转移的功能. 需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到1000节点. redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单 2.redis cluster集群搭建 redis clu

Redis Cluster 4.0高可用集群安装、在线迁移操作记录

之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑到是线上生产环境,决定在线迁移,迁移过程,不中断服务.操作过程如下: 一.机器环境 1 2 3 4 5 6 7 8 9 10 11 12 13 迁移前机器环境 ----------------------------------------------------------------------

(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https://blog.csdn.net/qq_28804275/article/details/80938659 下载redis镜像(不带tag标签则表示下载latest版本) docker pull redis 从github 下载最新的redis.conf,注意重要参数 # 端口 port 6379 #

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

Redis高可用集群

Redis 高可用集群 Redis 的集群主从模型是一种高可用的集群架构.本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明. 高可用集群搭建 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术. Redis 3.0 之后便支持集群.Redis 集群中内置了 16384 个哈希槽.Redis 会根据节点数量大致均等的将哈希槽映射到不同

Redis Sentinel高可用架构

Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis sentinel高可用架构. 它的主要功能有以下几点 不时地监控redis是否按照预期良好地运行; 如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端); 能够进行自动切换.当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中

Redis Sentinel 高可用实现说明

背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做下详细的说明. 安装:      这里对源码编译进行一下说明,本文实例的操作系统是Ubuntu16.04,使用Redis的版本是3.2.0.安装步骤如下: 下载源码包:wget http://download.redis.io/releases/redis-3.2.0.tar.gz 安装依赖包:su

activemq+Zookeper高可用集群方案配置

在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper + LevelDB 的 Master-Slave 实现方式. 相关文章:范例项目: http://wosyingjun.iteye.com/blog/2312553 ActiveMQ的简单实用:http://wosyingjun.iteye.com/blog/2314