当前位置: 首页 > article >正文

Redis事物和主从同步

Redis事物

Redis中是有事物,但是它的事务和数据库中的有些不一样。

Redis的acid

原子性,如果事物刚开始的命令被判断是错误的,例如使用了put等Redis中没有的关键词,Redis会直接把这个事物抛弃,这时候就保证了原子性。但是如果刚开始检查的时候,没有检查出错误,但是执行的时候发现错误了,这个时候就没有原子性了,下面的操作还是会执行的。

一致性,如原子性一样,如果Redis一开始检查出来了,就会拒绝执行事物,如果没有检查出错误,但是执行的时候发现了错误,还是会执行的。如果在事物执行到一半之后发生故障,如果使用的是AOF,那么一致性不可以保证,但是使用RDB的话,一致性是可以保证的。

隔离性,如果在事物执行的阶段,有别的命令一起进来的话,就需要使用watch命令来确保隔离性。但是如果是在事物执行完毕的时候,有命令进来的话,Redis会优先执行事物中的命令。

持久性,RDB和AOF都可以保证持久性。

Redis主从同步问题

Redis主从同步是会有延迟的,一般有两个因素

一网络因素,可能网络延迟过长导致命令从主库传送到从库晚了很久。

二从库正在处理复杂的数据,导致从库接受主库的RDB数据时无法及时同步。

Redis还有可能读取过期的数据。

如果Redis给主库设置10秒后过期,结果从库收到这个命令后已经是3秒后了,从库就会晚三秒过期。因此的话,可以设置为十点钟过期,这种统一时间。

Redis脑裂

如果哨兵判断Redis主库客观下线,结果其实它没有下线,它仍然在接受客户端的消息,这个时候哨兵们已经选好了新的主库,这个时候,这段时间的命令就会丢失,也就是脑裂。可以依靠判断多少个从库多少秒钟如果无法连接到主库,客户端就禁止发送数据给主库来避免脑裂。

往期文章

Redis核心技术

Redis主从同步和哨兵

Redis实战

Redis为什么会阻塞

Redis一些问题


http://www.kler.cn/a/281587.html

相关文章:

  • Java 5.1 - Spring
  • Web3与人工智能的完美结合:如何重塑数字未来
  • 培训第三十八天(上传镜像,私有仓库下载镜像,跨主机容器间的通信,harbor软件包下载)
  • C++对C的扩充(8.28)
  • 【设计模式】创建型模式——简单工厂模式
  • ElementPlus下拉框输入框对齐问题
  • 算法训练第24天|122.买卖股票的最佳时机II|55. 跳跃游戏|45.跳跃游戏II|1005.K次取反后最大化的数组和
  • 网络自动化:利用Python和Ansible实现网络配置管理
  • Neo4J下载安装
  • gptk是什么意思?Mac电脑如何在crossover里安装gptk2.0测试版?借助GPTK玩《原神》《黑神话悟空》游戏
  • 【AI】自动驾驶的分级
  • edge跟谷歌浏览器配置浏览器可跨域
  • 构建Spring Boot应用的多环境配置策略
  • Spring 源码解读:手动实现IoC容器的基本概念与职责
  • 使用maven搭建微服务框架
  • C语言典型例题54
  • 单HTML文件集成vue3+ElementPlus的使用
  • 医疗数字化转型数据中台架构方案(一)
  • Springsecurity中的Eureka报错:Cannot execute request on any known server
  • PyTorch深度学习实战(27)—— PyTorch分布式训练