`
天堂飘过
  • 浏览: 19662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于haproxy的redis高可用环境搭建

阅读更多
一 redis主从搭建
在10.21.6.55部署redis作为master
10.21.6.56部署redis作为slave
master配置:

引用
daemonize yes

###若为从库,应该设置为主库的密码
#masterauth "Ifeng888"

###登录需要密码认证
requirepass "Ifeng888"
###别忘了更改密码

pidfile /data/redis/6379/redis.pid

port 6379
tcp-backlog 511

timeout 0
tcp-keepalive 0

loglevel warning

logfile /data/logs/redis/redis.log

databases 16

save 1200 1
save 900 10000
save 300 100000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /data/redis/6379

slave-serve-stale-data yes

slave-read-only no



slave配置

引用
daemonize yes

###若为从库,应该设置为主库的密码
masterauth "Ifeng888"

###登录需要密码认证
requirepass "Ifeng888"
###别忘了更改密码

pidfile /data/redis/6379/redis.pid

port 6379
tcp-backlog 511

timeout 0
tcp-keepalive 0

loglevel warning

logfile /data/logs/redis/redis.log

databases 16

save 1200 1
save 900 10000
save 300 100000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /data/redis/6379

##设置主从
slaveof 10.21.6.55 6379

slave-serve-stale-data yes

slave-read-only no



启动master slave上的redis

在master上

引用
redis-cli -a Ifeng888
127.0.0.1:6379> get Ifeng777
"14"
127.0.0.1:6379> set Ifeng777 18
OK


slave 上

引用
redis-cli -a Ifeng888
127.0.0.1:6379> get Ifeng888
(nil)
127.0.0.1:6379> get Ifeng777
"14"
127.0.0.1:6379> get Ifeng777
"18"

主从环境搭建成功

二、haproxy配置
1、安装haproxy

引用
yum install haproxy



2、修改配置文件

引用
vim /etc/haproxy/haproxy.cfg


配置文件

引用
listen redis_cluster:6380               #运行的端口及主机名
        bind *:6380
        server redis-master_6.55 10.21.6.55:6379 check port 6379 inter 2000 rise 3 fall 3 maxconn 10000 weight 1
        server redis-slaver_6.56 10.21.6.56:6379 check port 6379 inter 2000 rise 3 fall 3 maxconn 10000 weight 1 backup



haproxy配置完成
已实现:
1、redis主从配置
2、haproxy高可用实现
因为对slave配置backup,master正常工作时,redis请求全部转发到master上,当master挂掉时,请求转发到slave上。


写一段简单的java代码进行验证,redisclient配置为haproxy 的 IP 端口为6380
当程序进行一半时,关停master
命令:redis-cli -a Ifeng888 shutdown

测试代码
public class Test {

    public static void main(String[] args){
        String key = "Ifengtest1";

        RedisClient.set(key,0);
        while (true){
            Integer rv= RedisClient.get(key,Integer.class);
            System.out.println("test redis "+rv);
            if (rv!=null){
                rv++;
                RedisClient.set(key,rv);
            }

            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }


    }
}



输出结果:
引用
test redis 0
test redis 1
test redis 2
test redis 3
test redis 4
test redis 5
test redis 6
2017-10-31 10:05:30,154  INFO main com.ifeng.auto.we_provider.cache.redis.RedisClient - Redis
redis.clients.jedis.exceptions.JedisConnectionException: It seems like server has closed the connection.
at redis.clients.util.RedisInputStream.readLine(RedisInputStream.java:91)
at redis.clients.jedis.Protocol.processStatusCodeReply(Protocol.java:80)
at redis.clients.jedis.Protocol.process(Protocol.java:69)
at redis.clients.jedis.Protocol.read(Protocol.java:122)
at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:172)
at redis.clients.jedis.BinaryJedis.get(BinaryJedis.java:74)
at com.ifeng.auto.we_provider.cache.redis.RedisClient.get(RedisClient.java:571)
at com.ifeng.auto.we_provider.main.Test.main(Test.java:16)
test redis null
test redis 7
test redis 8
test redis 9
test redis 10
test redis 11
test redis 12
test redis 13


三、主从redis更换密码
1、master修改密码

引用
###登录需要密码认证
requirepass "Ifeng999"


2、关停master
使用更改配置前密码关停redis
引用
redis-cli -a Ifeng888 shutdown


3、启动master
引用
service redis start


4、slave修改密码
masterauth 和requirepass 都需要更改为新密码

引用
###若为从库,应该设置为主库的密码
masterauth "Ifeng999"

###登录需要密码认证
requirepass "Ifeng999"



5、slave关停
使用更改配置前密码关停redis
引用
redis-cli -a Ifeng888 shutdown


6、启动slave
引用
service redis start


7、修改各业务系统中redis密码配置文件,并重启项目
至此 redis密码更改完成。
分享到:
评论

相关推荐

    redis高可用笔记,包括RedisCluster集群方式和完全纯手写Redis缓存框架

    为了确保服务的稳定性和可靠性,Redis提供了多种高可用解决方案,其中最常见的是Redis Cluster集群模式以及自定义的手工搭建的缓存框架。下面将对这两个方面进行详细探讨。 ### Redis Cluster集群 Redis Cluster是...

    Role部署LNMP+HAproxy+keepalived高可用.docx

    本文详细介绍了如何使用Ansible搭建高可用的LNMP环境,并使用HAproxy和keepalived实现负载均衡和高可用性。Ansible提供了一种自动化的方式来搭建和管理IT infrastructure,使得系统管理员可以更方便地管理和维护系统...

    linux下安装redis以及搭建redis集群

    在Linux环境下安装Redis并搭建Redis集群是一个涉及到系统管理、网络配置和数据库操作的重要任务。Redis是一种高性能的键值存储系统,常用于缓存、消息队列等场景,而Redis集群则能提供高可用性和数据冗余,确保服务...

    《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》

    《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》这本书深入探讨了在互联网行业中如何设计和构建能够处理亿级用户流量的高可用、高并发系统。作者开涛,作为业界资深专家,以其丰富的实战经验,为我们...

    大型网站技术架构:核心原理与案例分析 亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统

    这两本书——《大型网站技术架构:核心原理与案例分析》和《亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统》提供了宝贵的指导,帮助我们构建稳定、高效且可扩展的系统。 首先,我们要讨论的是高并发处理...

    谷粒商城电商项目 ( 大型分布式基础+高级、高可用集群部署)(全栈开发篇)

    《谷粒商城电商项目:大型分布式基础与高可用集群部署》 在当今互联网时代,电商平台的构建已经成为企业不可或缺的一部分。谷粒商城电商项目以其大型分布式基础和高可用集群部署为特色,展现了现代电商系统的先进性...

    亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统

    ### 亿级流量网站架构核心技术:跟开涛学搭建高可用高并发系统 #### 核心知识点概述 本文旨在深入探讨“亿级流量网站架构核心技术”这一主题,并跟随开涛老师的指导来学习如何构建高可用、高并发的系统。虽然提供...

    liunx下redis3.0.0集群负载均衡文档完整部署带所有安装包(redis集群)

    在Linux环境下,Redis 3.0.0集群的部署与负载均衡是一项重要的系统架构任务,它涉及到数据存储、高可用性、性能优化等多个方面。Redis是一个高性能的键值数据库,而集群模式则进一步增强了其扩展性和可靠性。以下是...

    高可用架构讲座PPT

    - **云平台负载均衡服务**:如AWS ELB、阿里云SLB等,适用于快速搭建高可用架构。 #### 2.3 自动化运维 - **监控报警**:通过设置合理的监控指标并实时监控系统状态,一旦发现异常立即触发报警机制。 - **故障自愈*...

    亿级流量网站架构核心技术-跟开涛学搭建高可用高并发系统

    本篇文章将基于“亿级流量网站架构核心技术—跟开涛学搭建高可用高并发系统”的核心内容进行深入探讨,旨在为读者提供一套完整的理论体系和技术实践指南。 #### 一、高可用与高并发的概念解析 1. **高可用(High ...

    微服务架构(Kafka、Redis、MySQL)

    同时,通过【Haproxy+Keepalived】来实现高可用的负载均衡,当请求到来时,由抢占到虚拟IP的【Keepalived】决定由哪个【Haproxy】负责负载均衡。 **三、Zookeeper集群** 【Zookeeper】是Apache的一个分布式协调服务...

    第四十六章:Redis sentinel哨兵集群1

    **四、Keepalived+Haproxy+Redis实现高可用** Keepalived可以配合Haproxy实现负载均衡和故障切换,保持IP地址的稳定性。通过配置Keepalived,当Master节点出现故障时,可以快速将VIP(虚拟IP)漂移到新的Master节点...

    亿级流量网站架构核心技术+跟开涛学搭建高可用高并发系统

    总的来说,“亿级流量网站架构核心技术+跟开涛学搭建高可用高并发系统”涵盖了从架构设计到实际操作的全过程,旨在帮助开发者和运维人员掌握应对大规模流量的策略和技术,构建高效、可靠的互联网服务。通过学习和...

    亿级流量网站架构核心技术学搭建高可用高并发系统

    Spring Session提供了基于Redis的分布式会话解决方案,保证用户会话在不同服务间的一致性。 7. **服务治理**:Spring Cloud提供服务治理组件,如服务注册与发现(Eureka)、熔断机制(Hystrix)、断路器模式,确保...

    高可用高并发系统

    在构建一个亿级流量的高可用、高并发系统时,我们面临的核心挑战是如何处理大量并发请求,保证...《亿级流量网站架构核心技术+跟开涛学搭建高可用高并发系统》这本书应该会深入探讨这些主题,为读者提供详细的指导。

    PHP开发高可用App接口资料.zip

    8. **负载均衡与集群**:在高并发场景下,通过负载均衡器分发请求到多台服务器,实现高可用。理解Nginx或HAProxy的工作原理和配置是必要的。 9. **数据库优化**:合理设计数据库结构,使用索引,优化查询语句,避免...

    tomcat 集群搭建

    在高并发的Web应用环境中,单个服务器可能无法满足性能需求,这时就需要使用集群技术来提高服务的可用性和可扩展性。Tomcat作为一款广泛应用的Java Servlet容器,支持集群配置,可以实现负载均衡和故障转移。本文档...

    高并发Web架构实现思路——java版

    针对Web2.0模式下海量数据和高并发的特性,本节将介绍一种基于廉价硬件平台的高性能、高并发、高扩展性的Web应用系统架构设计思路。该架构主要包括以下几个关键组成部分: - **前端负载均衡**:负责分发用户的请求...

Global site tag (gtag.js) - Google Analytics