Redis早期的主从架构原理分析,早期如何实现读写分离的?读写分离: 可以用于实现读写分离 , 主库写、从库读 , 读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量 。
利用主从复制,可以实现读写分离、数据备份等功能 。但如果主库宕机后,需要运维人员手动地将一个从库提升为新主库,并将其他从库slaveof新主库,以此来实现故障恢复 。
主服务器通过向从服务器传播命令来更新从服务器的状态,保持主从服务器一致,而从服务器通过向主服务器发送命令来进行心跳检测,以及命令丢失检测 。
redis缓存原理redis缓存原理是sql语句时key值 , 查询结果resultSet是value,当同一个查询语句访问时(select * from t_product) , 只要曾经查询过,调用缓存直接返回resultSet,节省了数据库读取磁盘数据的时间 。
Redis是一种内存高速cache,如果使用redis缓存 , 那经常被访问的内容会被缓存在内存中,需要使用的时候直接从内存调?。恢辣扔才痰魅】炝硕嗌俦?,并且支持复杂的数据结构,应用于许多高并发的场景中 。
AOF 是以appendonly方式进行数据的储存的 , 开启AOF模式后,所有存进redis内存的数据都会进入os cache中,然后默认1秒执行一次fsync写入追加到appendonly.aof文件中 。
内存淘汰管理机制Memory Management 当内存占满之后,redis提供缓存淘汰机制 。
redis缓存其实就是把经常访问的数据放到redis里面,用户查询的时候先去redis查询 , 没有查到就执行sql语句查询,同时把数据同步到redis里面 。redis只做读操作,在内存中查询速度快 。
Redis主从之全量复制和增量复制1、因为全量复制的数据量过大,会造成很大的网络开销,所以Redis只有在必要的情况下才做全量复制,比如初次复制和其他无法部分复制 用于初次复制或其它无法进行部分复制的情况,将主节点中的所有数据都发送给从节点 。
2、Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程 。增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令 。
3、上一篇文章Redis主从复制原理中简要地说明了主从复制的一个基本原理,包含全量复制、复制积压缓冲区与增量复制等内容,有兴趣的同学可以先看下 。利用主从复制,可以实现读写分离、数据备份等功能 。
4、选择要迁移的数据库对象 。配置映射关系 , 将源实例的多个数据库(0~15)映射到目标实例的指定1个或多个数据库 。进行预检查,通过完善的检查项确保迁移任务的稳定性 。
Redis主从复制丢失数据的情况分析Redis中的Map被误删除:在某些情况下,可能会出现误删除Map的情况 , 例如在操作时误执行了DEL命令或者使用了错误的键名 。
这样一来,主从切换完成后,也只有新主库能接收请求 , 不会发生脑裂 , 也就不会发生数据丢失的问题了 。主从数据不一致,就是指客户端从从库中读取到的值和主库中的最新值并不一致 。
可能有人会遇到,Redis 经常会丢掉一些数据,写进去了 , 过一会儿可能就没了 。那么你可能是将Redis当成存储了而没有当作缓存 。啥叫缓存?用内存当缓存 。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的 。
导致各种脏数据的产生 。所以这个就是redis cluster,或者是redis master-slave架构的主从异步复制导致的redis分布式锁的最大缺陷:在redis master实例宕机的时候,可能导致多个客户端同时完成加锁 。
一个节点认为某个节点失联了并不代表所有的节点都认为它失联了 。所以集群还得经过一次协商的过程,只有当大多数节点都认定了某个节点失联了 , 集群才认为该节点需要进行主从切换来容错 。
此时就会 导致多个客户端对一个分布式锁完成了加锁 。这时系统在业务语义上一定会出现问题,导致各种脏数据的产生 。
redis主从复制最好采用哪种结构为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构 , Redis主从复制可以根据是否是全量分为全量同步和增量同步 。下图为级联结构 。
演示集群采用1主2从,采用伪集群,在一台虚拟机中启动,端口暂定6386386383,集群结构可以选择下面2种,因为数量较少,此次采用普通样式 。
【redis集群复制 redis部分复制】redis主从复制集群 实现方式:选择一台redis服务器作为master节点(负责写操作) , 另外一台或多台服务器作为slave节点(负责读操作) , slave节点上的数据完全由master节点同步过来 。
推荐阅读
- 如何快速设置服务器? fast怎么填服务器
- 如何查看服务器的关机记录? 怎么查看服务器关机记录
- 如何在腾讯云上安装服务器? 腾讯云服务器怎么装
- 如何在fast上搭建服务器? fast怎么开服务器
- 如何查看服务器所关联的数据库? 怎么查看服务器关联数据库
- 如何在腾讯云服务器上进行文件解压缩? 腾讯云服务器怎么解压文件
- java大量导入数据到redis java怎么把数据存入redis
- 如何设置Fast服务器的名称? fast服务器名怎么设置