1.MySQL和Redis处理不同类型的数据

读请求:对于一些实时性要求不高的数据,列如好友列表、近期回复,Redis进行处理。对于实时性要求高的数据,列如金融数据和交易数据,MySQL进行处理。在并发不高的情况下,读操作优先读取redis,不存在的话就去访问MySQL,并把读到的数据写回Redis中

写请求:数据首先写到数据库,之后更新Redis。(Redis通过SQL线程读取数据库修改日志、再通过IO线程进行读取日志,进行更新)

2.高并发情况下

高并发情况下,可能会出现数据不一致的情况。原因如下:1.如果先写入数据库,然后删除缓存,如果删除失败,导致数据库当中是新数据,缓存当中是旧数据,因此要先删除缓存,在写入数据库。2.现在发生了写请求A,A的第一步删除缓存,然后A的第二步要在数据库中写入新的数据。此时读请求B来了,发现缓存为空,来数据库当中读取数据,此时A还没有更新成功。B就读取了一个脏数据,并放入了缓存,导致不一致的状态。

解决方法:

遇到这种情况,可以用队列的去解决这个问,创建几个队列,如20个,根据商品的ID去做hash值,然后对队列个数取摸,当有数据更新请求时,先把它丢到队列里去,当更新完后在从队列里去除,如果在更新的过程中,遇到以上场景,先去缓存里看下有没有数据,如果没有,可以先去队列里看是否有相同商品ID在做更新,如果有也把查询的请求发送到队列里去,然后同步等待缓存更新完成。

这里有一个优化点,如果发现队列里有一个查询请求了,那么就不要放新的查询操作进去了,用一个while(true)循环去查询缓存,循环个200MS左右,如果缓存里还没有则直接取数据库的旧数据,一般情况下是可以取到的。

阿里云 redis mysql_Redis 和 MySQL数据一致相关推荐

  1. 阿里云Redis之:配置程序接入阿里云Redis集群缓存数据(十七)

    文章目录 1.配置Redis白名单及账号密码 1.1.配置白名单 1.2.配置Redis账号密码 1.3.在ECS中测试是否能连接Redis 2.设置Redis集群为免密登录 3.配置KodCloud ...

  2. 阿里云Redis数据过期和淘汰策略解答

    背景 阿里云Redis作为一个高性能的内存NoSQL数据库,其容量受到最大内存限制的限制. 用户在使用阿里云Redis时,除了对性能,稳定性有很高的要求外,对内存占用也比较敏感.在使用过程中,有些用户 ...

  3. 阿里云Redis典型场景:如何构建可扩展通用排行榜系统

    点击有惊喜 摘要 本文主要介绍通用排行榜的需求功能,并介绍了基于Redis的ZSET数据结构的排序方法,另外探讨了通用排行榜的架构及用户如何通过阿里云Redis解决通用排行架构的技术问题. 背景 移动 ...

  4. 阿里云怎样操作mysql数据库_阿里云主机如何操作mysql数据库

    阿里云主机如何操作mysql数据库,阿里云上传mysql数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关 ...

  5. 阿里云 导入 mysql_阿里云服务器怎么导入mysql数据库

    阿里云服务器怎么导入mysql数据库,用阿里云上传数据库. 阿里云ECS云服务器2折起,优惠配置多选1,用户实名认证后可购买,每人限1单,第2单起恢复原价:活动配置升级为第四代云服务器,其中入门级配置 ...

  6. 阿里云 Redis 开发规范

    摘要:本文介绍了在使用阿里云Redis的开发规范,从键值设计.命令使用.客户端使用.相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题. 一.键值设计 1. key名设计 (1 ...

  7. 阿里云 Ubuntu PHP7 Nginx Mysql 开发环境搭建

    记录下在阿里云搭建 PHP7 开发环境 安装 nginx sudo apt-get update sudo apt-get install nginx安装完成后会自动开启,通过命令查看 # ps -a ...

  8. 阿里云Redis开发规范

    本文作者:carlosfu 原文链接:https://yq.aliyun.com/articles/531067 摘要: 本文介绍了在使用阿里云Redis的开发规范,从键值设计.命令使用.客户端使用. ...

  9. 7月10日云栖精选夜读丨ApsaraCache开源之路,阿里云Redis团队LC3全球顶级开源峰会获CRUG开源社区最具影响力奖...

    近日由The Linux Foundation主办的全球开源盛会LinuxCon + ContainerCon + CloudOpen(LC3)中国在北京国家会议中心举行,阿里云Redis团队也受邀参 ...

最新文章

  1. Web页面中png jpg gif webp svg的区别和使用
  2. python入门指南pdf-跟老齐学Python+从入门到精通 PDF 下载
  3. python 数据库的Connection、Cursor两大对象
  4. ios开发 静音键设置_iOS开发,改变系统铃声音量和静音,并非媒体播放音量
  5. Windows 环境下 git 客户端中的 git-bash 和 MINGW64
  6. tftp 服务器 ip_360Stack裸金属服务器部署实践
  7. ASP.NET 网页之间传递值
  8. nginx 没有cookie_Nginx入门学习(1):一些概念
  9. centos6 java安装_CentOS6下安装Java JDK8
  10. WebResource.axd引起的问题
  11. GAMES101 Transformation Cont.
  12. 最小发射功率下WSN的连通性和覆盖率
  13. python列表嵌套字典取值_Python学习100天-Day03(字符串、列表、字典、元组)
  14. 人脸匹配对齐算法pytorch_PyTorch 实现孪生网络识别面部相似度
  15. 接口测试之postman
  16. 如何查看本机IP及端口
  17. 2018年下半年考试感想
  18. 在MacOS上构建以太坊开发环境
  19. 城市信息学其四—城市新陈代谢
  20. 抖音协议算法教- API学习

热门文章

  1. 【docker】docker 实现 的基础
  2. 【MySQL】MySQL drop,truncate,delete 区别
  3. 【Kafka】kafka NotLeaderForPartitionException thisserver is not the leader for topic-partition
  4. kerberos安装配置与使用
  5. 【安全】Docker安装LDAP
  6. 新建远程仓库并推送项目
  7. mri计算机系统,MRI设备
  8. 小林求职记(五)上来就一连串的分布式缓存提问,我有点上头....
  9. RocketMQ入门到入土(四)producer生产消息源码剖析
  10. python中字符串相乘结果_LeetCode 43. 字符串相乘 | Python