redis架构详解
admin
2023-02-22 20:40:03
0

一、redis特性
1.redis 是什么?
redis是基于内存的可持久化的key-value数据库
2.redis数据结构类型?
value支持五种数据类型,字符串、字符串列表、字符串集合、有序集合、hashs
3.redis持久存储方式
redis两种持久化方式,RDB,和AOF
RDB: 将某一时刻的数据持久化到磁盘上,是一种快照式的持久方式, redis在进行持久化的过程中,会先将数据写入临时文件中,待持久化过程结束,会用这个临时文件,替换上次持久化的文件,正是这种特性,让我们可以随时来进行备份,因为快照文件总是完整可用的。
原理:rdb方式持久化时,redis会fork出一个子进程进行持久化,主进程不会进行任何io操作,确保redis性能不会因持久化而降低,如果对数据不敏感且需要大规模恢复数据,可以使用这种方式

AOF: 将执行过的写指令记录下来,在数据恢复时,将指令按照顺序在执行一边.
我们通过配置redis.conf中的appendonly yes就可以打开AOF功能.如果有写操作,就会追加到aof文件末尾,默认aof持久化策略是每秒钟fsync一次将数据从缓存区域刷到磁盘上,因为在这种情况下,redis仍然可以保持很好的处理性能,即使redis故障,也只会丢失最近1秒钟的数据.
问题1: aof文件坏了怎么办?
备份被写坏的AOF文件
运行redis-check-aof –fix进行修复
用diff -u来看下两个文件的差异,确认问题点
重启redis,加载修复后的AOF文件
问题: aof追加方式文件会越来越大怎么处理?
redis提供了rewrite重写机制,当aof文件大小超过设置阀值,就会启动aof文件压缩,保留恢复数据的最小指令集,在重写时也是先写入临时文件
rewrite原理:在从写开始时,任redis会fork出一个子进程,这个子进程会首先读取现有的AOF文件,并将其包含的指令进行分析压缩并写入到一个临时文件中.
与此同时,主工作进程会将新接收到的写指令一边累积到内存缓冲区中,一边继续写入到原有的AOF文件中,这样做是保证原有的AOF文件的可用性,避免在重写过程中出现意外,当“重写子进程”完成重写工作后,它会给父进程发一个信号,父进程收到信号后就会将内存中缓存的写指令追加到新AOF文件中,当追加结束后,redis就会用新AOF文件来代替旧AOF文件,之后再有新的写指令,就都会追加到新的AOF文件中了

4.redis主从

主从优点: 冗余备份,提升性能,读写分离,主从架构异步进行,不会降低处理性能

主从原理:
从服务器向主服务器发送sync指令,当主服务器接到指令后,就会调用bgsave指令创建子进程专门用来进行持久化工作,也就是将主服务器上的数据写入rdb。在数据持久化期间,主服务器将执行的写指令都缓存在内存中。
在bgsave指令完成后,主服务器会讲rdb文件发送给从服务器,从服务器将文件保存到磁盘上,然后读到内存中。这个动作完成后,主服务器会将这段时间缓存得到写指令在以redis协议发送给从服务器.
注: 即使有多个从服务器发送sync指令,主服务器也只会执行一次bgsave

5.redis事物

redis四个指令构成redis事物处理的基础
1.MULTI用来组装一个事务;
2.EXEC用来执行一个事务;
3.DISCARD用来取消一个事务;
4.WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行

二、redis架构
单机:
redis架构详解

容量有限,处理能力有限,部署简单,适合开发,或者不重要的数据.

主从复制:
redis架构详解
1、master/slave 角色
2、master/slave 数据相同
3、降低 master 读压力在转交给从库
问题:1、无法保证高可用;2、没有解决 master 写的压力

哨兵:
redis架构详解
Redis sentinel 是一个分布式系统中监控 redis 主从服务器,并在主服务器下线时自动进行故障转移。其中三个特性
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作
特点:
1、保证高可用
2、监控各个节点
3、自动故障迁移
缺点:主从模式,切换需要时间丢数据
没有解决 master 写的压力

集群(proxy)
redis架构详解
Twemproxy 是一个 Twitter 开源的一个 redis 和 memcache 快速/轻量级代理服务器; Twemproxy 是一个快速的单线程代理程序,支持 Memcached ASCII 协议和 redis 协议。
特点:1、多种 hash 算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins
2、支持失败节点自动删除
3、后端 Sharding 分片逻辑对业务透明,业务方的读写方式和操作单个 Redis 一致
缺点:增加了新的 proxy,需要维护其高可用。
failover 逻辑需要自己实现,其本身不能支持故障的自动转移可扩展性差,进行扩缩容都需要手动干预

相关内容

热门资讯

蒋万安借“725上凯道”成蓝营... 中国国民党25日将于台北凯道举办“我是人,我反毒台”集会,向民进党当局抗议中联毒油案。对此,资深媒体...
波轮式全自动洗衣机脱水时波轮转 波轮式全自动洗衣机脱水时波轮转1、衣物放置不平导致;2、排水系统发生阻塞。3、顶部的安全开关损坏;4...
洗衣机不出水怎么查原因 当洗衣机不出水时,一定是出了问题。下面就是一些可能的原因及其解决方法:1. 电源问题洗衣机不能正常工...
半自动洗衣机放不出水是什么原因... 1、检查过滤网是否堵塞。若堵塞了需要将脏东西取出来,然后再用清水将过滤网清洗干净。2、检查一下是不是...
全自动洗衣机不出水是什么原因 1、进水口的滤网被水中的杂质堵住。2、控制板上的进水继电器坏了。3、电路故障,进水电磁阀有故障或者插...
抽油烟机只通电不转怎么回事 只通电不转的故障原因和解决方法:1、电容量减小或损坏。解决方法:抽油烟机电机不转,还有嗡嗡声,一般是...
谷歌被罚9亿欧元后,特朗普称欧... 当地时间7月23日,欧盟委员会指控美国谷歌公司违反欧盟《数字市场法》,对其处以8.9亿欧元罚款。这一...
14对14,中国反击欧盟,干净... 对于欧盟的指手画脚,中国第一时间反击了。14:14。干净利落,来而不往非礼也。国际博弈,从来如此:没...
风未到,人已行!凌晨不眠!一场... 7月24日晚,台风“红霞”持续逼近,市应急管理局五楼会议室灯火通明,市应急管理局党委书记、局长李见秋...
省自然资源厅部署12号台风“红... 受今年第12号台风“红霞”影响,我省中部和南部地区有一轮强降雨过程,部分地区有较高的地质灾害风险。自...