import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisSentinelPool; import redis.clients.jedis.…
Redis三种集群方式:主从复制,哨兵模式,Cluster集群. 主从复制 基本原理 当新建立一个从服务器时,从服务器将向主服务器发送SYNC命令,接收到SYNC命令后的主服务器会进行一次BGSAVE命令,在执行期间,会将所有命令写入缓冲区中,当BGSAVE命令执行完毕之后会将生成的RDB文件发送给从服务器,从服务器使用这个文件加载数据到内存中,之后主服务器会以Redis命令协议的格式将缓冲区的命令发送给从服务器.此后每次主服务执行命令都会同步给从服务器.即使有多个从服务器向主服务器发送SYNC…
一.不指定redis连接池 #系统默认连接池 yml配置文件: spring: redis: cluster: nodes: - 192.168.1.236:7001 - 192.168.1.236:7002 - 192.168.1.236:7003 - 192.168.1.244:7004 - 192.168.1.244:7005 - 192.168.1.244:7006 max-redirects: 3 # 获取失败 最大重定向次数 pool: max-active: 1000 # 连接池最…
既然是数据库,那就一定有数据备份方式了,而且 Redis 是内存形式的数据库,更需要数据备份了,要不然断电数据就全都丢失了. Redis 数据备份有两种方式: RDB(数据快照) AOF(记录操作日志) 第一种是每隔一定的操作之后就进行一次数据备份,比如十分钟内进行了1000次写操作,就执行一次数据库备份,生成快照存储在本地.那 Redis 如何在一个持续写入的数据库中生成快照呢?Redis 内部借助了 fork 命令,copy on write 机制,在生成快照时,将当前进程 fork 出一个…
redis主从只是数据的备份,当主宕机后不会自动切换从为主,需要手动切换从为主. 哨兵就可以自动切换从为主, 当主数据库遇到异常中断服务后,开发者可以通过手动的方式选择一个从数据库来升格为主数据库,以使得系统能够继续提供服务.然而整个过程相对麻烦且需要人工介入,难以实现自动化. 为此,Redis 2.8中提供了哨兵工具来实现自动化的系统监控和故障恢复功能. 哨兵的作用就是监控redis主.从数据库是否正常运行,主出现故障自动将从数据库转换为主数据库. 顾名思义,哨兵的作用就是监控Redis系统的…
eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从config获取region和zone以及serviceUrl相关信息 2. 获取过程首先从配置中获取应用所在region,通过region属性设置 3. 根据region获取所有zone信息,dns与config获取方式不一样 3.1. dns会请求dns服务器获取指定region的所有zone列…
redis的持久化配置: 主要包括两种方式:1.快照  2 日志 来看一下redis的rdb的配置选项和它的工作原理: save 900 1 // 表示的是900s内,有1条写入,则产生快照 save 300 1000 // 表示的是300s内,有1000次的写入,则产生快照 save 60 10000 // 表示的是60s内,有10000次的写入,则产生快照 (这3个选项都屏蔽,则rdb被禁用) stop-writes-on-bgsave-error yes // 后台dump备份进程出错的时…
由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据.redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件). RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实…
redis的两种持久化方式: 1.RDB方式 概念:在指定的时间间隔内保存数据快照 实现方式: 找到redis的安装目录,修改redis的配置文件(redis.conf):① 修改备份的时间间隔:save  Time ② 修改备份文件的文件名:dbfilename  文件名.rdb ③ 修改备份文件的备份路径:dir  路径 手动方式: save  :会阻塞redis服务器,对于比较大的实例会造成长时间阻塞,线上环境不建议使用.运行save命令对应Redis日志如下: DB saved on d…
一.主从同步/复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据. 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失. 为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务.为此, Redis 提供了复制(replication)功能,可以实现当一台数据库中的数据更新后,自动将…