Keepalived 实现VRRP(虚拟路由冗余)协议,从路由级别实现VIP切换,可以完全避免类似heartbeat脑裂问题,可以很好的实现主从、主备、互备方案,尤其是无状态业务,有状态业务就需要额外花些功夫了。既然Mysql可以使用Keepalived很好的做到主从切换,那么Redis自然可以使用这种方式实现高可用。 Redis主从实现完全没有Mysql成熟,仅仅是可用而已,经过测试主从也不是那么完全不靠谱,主要问题在于同步连接断开之后需要重新全量同步,如果频繁进行会对主服务带来很大性能影响。 但现实中主
redis高可用有Sentinel、Cluster等多种方式,本文主要介绍keepalived方式。
redis.conf是Redis的核心配置文件,默认docker运行的redis是不存在配置文件的,这里可以先从官网下载:
新部署前可以从仓库(repository)下载 redis 镜像,或者从已有部署中的镜像生成文件:
http://jerrymin.blog.51cto.com/3002256/1898243
今天我们使用docker搭建redis集群,docker我们就不详细介绍了,都是些简单命令,有机会在写几篇docker的文章,只要你按照我的的步骤搞,redis集群就很容易搭建成功。
Redis is an open-source, in-memory, data structure store with optional disk writes for persistence. It can be used as a key-value database, or as a cache and message broker. Redis features built-in transactions, replication, and support for a variety of data structures such as strings, hashes, lists, sets, and others. Redis can be made highly available with Redis Sentinel and supports automatic partitioning with Redis Cluster.
redis-6379.conf为master配置文件,redis-6380.conf和redis-6381.conf为slave配置文件。
Redis已经大量应用于各种互联网架构场景中,其优异的性能,良好的操作性,以及大量的场景应用案例,使得Redis备受瞩目。本文作者向大家介绍了一种Redis在非大集群分布式应用场景下的灾备解决方案。一起来品读一下吧~
之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动升级为主库的,也就是说,该redis主从集群并非是高可用的。 目前来说,高可用(主从复制、主从切换)redis集群有两种方案,一种是redis-sentinel,只有一个master,各实例数据保持一致;一种是redis-cluster,也叫分布式redis集群,可以有多个master,数据分片分布在这些master上。 本文介绍基于docker和redis-sentinel的高可用redis集群搭建,大多数情况下,redis-sentinel也需要做高可用,这里先对redis搭建一主二从环境,另外需要3个redis-sentinel监控redis master。
1.创建公共配置文件 所有配置文件添加到以下目录: /xxxx/redis-slave-master 创建公共的redis配置文件,直接使用redis的默认配置文件,修改以下配置项: bind 127.0.0.1 daemonize yes 后台启动 requirepass 123456 登录密码 2.创建master服务的配置文件 在 /xxxx/redis-slave-master 目录中创建redis-master.conf文件,并添加以下配置内容: ## 公共配置配置相关 include /xx
Redis是一个高性能的key-value非关系型数据库,由于其具有高性能的特性,支持高可用、持久化、多种数据结构、集群等,使其脱颖而出,成为常用的非关系型数据库。 此外,Redis的使用场景也比较多。
之前的文章聊到了Redis的主从复制,聊到了其相关的原理和缺点,具体的建议可以看看我之前写的文章Redis的主从复制。
主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel模式应运而生。sentinel中文含义为哨兵,顾名思义,它的作用就是监控redis集群的运行状况,此模式具有如下一些特点:
由于无法进行主动恢复,因此主从模式衍生出了哨兵模式。哨兵模式基于主从复制模式,只是引入了哨兵来监控与自动处理故障。Redis Sentinel是社区版本推出的原生高可用解决方案,Redis Sentinel部署架构主要包括两部分:Redis Sentinel集群和Redis数据集群,其中Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。Redis Sentinel的节点数量要满足2n+1(n>=1)的奇数个。
源代码(可从https://github.com/eyjian/redis-tools下载):
redis-cluster是近年来redis架构不断改进中的相对较好的redis高可用方案。本文涉及到近年来redis多实例架构的演变过程,包括普通主从架构(Master、slave可进行写读分离)、哨兵模式下的主从架构、redis-cluster高可用架构(redis官方默认cluster下不进行读写分离)的简介。同时还介绍使用Java的两大redis客户端:Jedis与Lettuce用于读写redis-cluster的数据的一般方法。再通过官方文档以及互联网的相关技术文档,给出redis-cluster架构下的读写能力的优化方案,包括官方的推荐的扩展redis-cluster下的Master数量以及非官方默认的redis-cluster的读写分离方案,案例中使用Lettuce的特定方法进行redis-cluster架构下的数据读写分离。
本篇文章专注于讲解redis在windows环境下使用Redis Sentinel(哨兵)实现高可用方案。
如图所示,Redis的 **主从复制模式** 和Sentinel **高可用架构** 的示意图:
又很久很久没有更新博客了,也很久很久没有做云计算了,前期做了一段时间的游戏,现在又回归到常规运维的岗位,最近接触到redis这玩意,也就简单配置了下,至少要熟悉下常规的配置,才能做到运维支撑嘛。现在也没有很多时间完善博客格式什么的,就把一些笔记贴进来,方便自己后期查看,如果可以,希望对新学者有所帮助吧。
Redis 2.4之后的版本开始集成了Sentinel,用于监控redis集群中 Master状态的工具,是Redis的高可用性解决方案。
Redis有两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AOF文件恢复内存中的数据。
Redis 在我的项目中,主要用作缓存和消息队列。小的项目可以使用单机版,大点的项目或者稍微注重高可用的时候可以考虑使用Redis 集群。
Redis 集群模式有三种:主从模式(Redis 2.8 版本之前)、哨兵模式(Redis 3.0 之前)、集群模式(Redis 3.0 之后)。
主从复制,这里是一台主(master)两台从(slave),master主节点可读可写,slave只具备读的权限 我们将 192.168.100.1 作为master主节点,其余两台为slave从节点
前面的文章已经介绍了redis作为缓存数据库的说明,本文主要说下redis主从复制及集群管理配置的操作记录: Redis主从复制(目前redis仅支持主从复制模式,可以支持在线备份、读写分离等功能。) 1)Redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master),一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动 将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。
出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式。
本篇文章笔者推荐一个笔者最常用的docker图形化管理工具——Portainer。
首先,要有一个主备集群。假设有3台电脑分别是MASTER、SLAVE1、SLAVE2。分别在这3台电脑上安装好Redis,并在SLAVE1、SLAVE2上设置为从MASTER同步(replicaof ***),那么它们就组成了主备集群,但是如果主节点出现故障了,从节点并不能提升为主节点,依然不能写入。为了解决这个问题,就要用到哨兵了。
贴心式服务,手把手教你搭建redis主从复制架构,然后介绍了redis主从复制原理,全量复制和部分复制,最后演示了java代码如何操作redis。希望对你有所帮助。
描述:在实际进行Debug时使用 kubectl port-forward 访问 Kubernetes 集群中的 Redis Server进行调试;
一、sentinel哨兵模式介绍 Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。
Redis5.x之后,单机、哨兵、集群搭建的难度已经简化。鉴于目前看到太多文章都是复制粘贴以往一些3.x版本的一些内容,所以打算基于当前Redis的最新版本做一次单机、哨兵和集群的搭建,记录一下过程步骤和遇到的问题。编写本文的时间是2019年10月6日(国庆假期…),当前Redis的最新版本为5.0.5。操作系统用的是虚拟机里面安装的CentOS 7。先确定已经安装好Redis服务,可以参考笔者写的前一篇文章:《Redis5.x单机服务搭建手记》。出于书写习惯,本文有可能把哨兵称为Sentinel、Redis Sentinel、哨兵或者Redis哨兵,这四个名词是等价的。
本文将演示使用kubernetes系统基于 kubeguide相关的镜像文件创建基于php和Redis的留言板系统,因为系统资源有限,kubernetes集群只有一个master节点和slave节点。
1. 热备方案 硬件:server两台,分别用于master-redis及slave-redis 软件:redis、keepalived 实现目标: 由keepalived对外提供虚拟IP(V
在主从复制模式的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统能切换到从节点去读写数据,这样能提升系统的可用性。而且如果再采用主从复制模式里默认的读写分离的机制,更能提升系统的缓存读写性能。所以对性能和实时性不高的系统而言,主从复制模式足以满足一般的性能和安全性方面的需求。
基于DOCKER安装Redis Sentinel 集群 配置规划 首先创建redis网络:docker network create --subnet=192.168.100.0/24 redisnet host ip port remark redis-6001 192.168.100.11 6001:6379 初始主节点 redis-6002 192.168.100.12 6002:6379 初始从节点 redis-6003 192.168.100.13 6003:6379
Redis的主从复制模式下, 一旦主节点由于故障不能提供服务, 需要人工将从节点晋升为主节点, 同时还要通知应用方更新主节点地址, 对于很多应用场景这种故障处理的方式是无法接受的。 1. 哨兵模式介绍 Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态 在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用(HA) 其已经被集成在redis2.6+的版本中,Redis的哨兵模式到了2.8版本之后就稳定了下来。
如果一个master挂了,那么剩余的2个master会发起投票选举,从挂了的master对应的slave中选举出一个新的master,发生故障的master不会参与投票,这个要注意。
实现了Redis的主从复制,在一定程度上保证了数据的可用性,但是如果主从复制中的master 节点挂掉,Redis将不再对外提供读写操作。假设当主从复制中的master节点挂掉后,如果能够从它的slave节点中重新选举一个节点作为master节点,那么系统就可以恢复了,因此就有了Redis的哨兵(sentinel)模式。
Redis 的 主从复制 模式下,一旦 主节点 由于故障不能提供服务,需要手动将 从节点 晋升为 主节点,同时还要通知 客户端 更新 主节点地址,这种故障处理方式从一定程度上是无法接受的。Redis 2.8 以后提供了 Redis Sentinel 哨兵机制 来解决这个问题。
要用好Redis这把利剑,先得把Redis环境摸透,今天就和大家一起玩一下Redis的部署方案。
* 一个master可以拥有多个slave,但是一个slave只能对应一个master
Redis-Sentinel是redis官方推荐的高可用性解决方案, 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能。
一直在使用redis,但是从来没有搭建过redis集群,今天来从0到1搭建一套redis哨兵主从集群。
在日常开发或者编程当中,经常需要用到redis集群,若是按照传统的方式,一个机器一个机器搭建,难免过于繁琐,故而可以通过dock er-compose编排方式,快速搭建。我在搭建过程当中,将操作记录下来,方便以后需要搭建三主三从节点时,可以基于以前的成功经验,快速搭建起来。
a.官网下载Redis安装包 找到redis.windows-service.conf 调整相关端口 密码 绑定地址配置【配置RedisMaster库】
领取专属 10元无门槛券
手把手带您无忧上云