Redis与数据库同步问题
缓存数据与持久化数据的一致性,这个问题总结了一下(看到了一个不错的博文),其实就是读和写,还有就是要注意谁先谁后的问题。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了python,Ruby,Erlang,PHP客户端,使用很方便。
1. 按照我们一般的使用Redis的场景应该是这样的:
也就是说:我们会先去redis中判断数据是否存在,如果存在,则直接返回缓存好的数据。而如果不存在的话,就会去数据库中,读取数据,并把数据缓存到Redis中。
适用场合:如果数据量比较大,但不是经常更新的情况(比如用户排行)
2. 而第二种Redis的使用,跟第一种的情况完成不同,具体的情况请看:
这里我们会先去redis中判断数据是否存在,如果存在,则直接更新对应的数据(这一步会把对应更新过的key记录下来,比如也保存到redis中比如:key为:save_update_keys【用lpush列表记录】),并把更新后的数据返回给页面。而如果不存在的话,就会去先更新数据库中内容,然后把数据保存一份到Redis中。
NO10这步:后面的工作:后台会有相关机制把Redis中的save_update_keys存储的key,分别读取出来,找到对应的数据,更新到DB中。
优点:这个流程的主要目的是把Redis当作数据库使用,更新获取数据比DB快。非常适合大数据量的频繁变动(比如微博)。
缺点:对Redis的依赖很大,要做好宕机时的数据保存。(不过可以使用redis的快照AOF,快速恢复的话,应该不会有多大影响,因为就算Redis不工作了,也不会影响后续数据的处理。)
难点:在前期规划key的格式,存储类型很重要,因为这会影响能否把数据同步到DB。
转载地址:http://blog.csdn.net/seapeak007/article/details/53410553
转载于:https://www.cnblogs.com/chenhaoyu/p/8310886.html
Redis与数据库同步问题相关推荐
- Redis和数据库 数据同步问题
Redis和数据库同步问题 缓存充当数据库 比如说Session这种访问非常频繁的数据,就适合采用这种方案:当然了,既然没有涉及到数据库,那么也就不会存在一致性问题: 缓存充当数据库热点缓存 读操作 ...
- Redis 缓存数据库使用 Redis-Shake 做数据同步
目录 Redis 缓存数据库使用 Redis-Shake 做数据同步 Redis-shake 简介 Redis-Shake 同步的五种模式 基本原理 部署过程 同步模式 restore 模式 dump ...
- springboot整合redis实现HyperLogLog统计文章浏览量使用过期策略完成数据库同步
springboot整合redis实现HyperLogLog统计文章浏览量&&使用过期策略完成数据库同步 本文目录 springboot整合redis实现HyperLogLog统计文章 ...
- redis mysql主从同步_手撕Redis,主从同步
原标题:手撕Redis,主从同步 一.主从同步的工作原理 redis主从复制过程: 当配置好slave后,slave与master建立连接,然后发送sync命令.无论是第一次连接还是重新连接,mast ...
- MySQL与Redis一致性解决同步问题
SpringBoot整合Redis的注解版本 @RestController public class MemberController { @Autowired private UserMapper ...
- Redis 缓存数据库
Redis 缓存数据库 第1章 Redis简介: redis是使用C语言编写的开源的,支持网络,基于内存,可持久性的键值对存储数据库,2013年5月之前,Redis是最流行的键值对存储数据库 Redi ...
- Redis缓存数据库服务器
Redis缓存数据库服务器 Redis是一个开源的科技与内存也可持久化的日志型.Key-Value数据库 Redis的存储分为内存存储.磁盘存储和Log文件三部分,配置文件中有三个参数对其进行配置. ...
- Redis和数据库的结合
使用 Redis 可以优化性能,但是存在 Redis 的数据和数据库同步的问题,这是我们需要关注的问题.假设两个业务逻辑都是在操作数据库的同一条记录,而 Redis 和数据库不一致. Redis 和数 ...
- Redis与数据库缓存一致性问题
一.Redis 数据一致性问题产生的原因 对 Redis和数据库的操作有 2 种方案: 1.先操作(删除) Redis,再操作数据库 2.先操作数据库,再操作(删除) Redis 上述二种方案,都希望 ...
最新文章
- 华为 Java 编程军规 !
- 定义一个计算字符串有效长度的_一个正方形的小抽屉柜,根据设计草图计算出所需四片木板的长度...
- IEnumerator,IEnumerable,IEnumerableT
- java uuid静态方法_Java UUID getLeastSignificantBits()方法与示例
- Android学习之android源码的导入
- Lc5-最长回文字串
- .net Core 学习笔记(实体字段映射,IOC注入)
- codeforces332B - Maximum Absurdity 线段数 or dp
- Scrapy 框架爬取 武动乾坤小说
- 老板平常多说点好听的
- mysql8.0默认端口_mysql 8.0.19 安装 及 端口修改
- seo知识技巧-关键词密度选取技巧
- 《项梵自述》分享我的心酸经历
- 淘宝天猫店铺微信公众平台建设指南
- 干货,QQ音乐歌手列表解密方法!
- Google浏览器打开新页面会覆盖当前页面的问题(打开新页面)
- 哪些平台可以查看医学类文献?
- Android 热修复原理篇及几大方案比较
- 微信小程序md5加密支持中文和特殊字符
- 学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
热门文章
- Redis为什么默认16个数据库,干什么用?
- 《论文笔记》Adaptive decentralised_cooperative_vision_based_simultaneous_localization_and_mapping_for_mult
- CSS3 创建简单的网页动画 – 实现弹跳球动
- 通过ping命令查看服务器是linux还是windows系列
- 多线程之多生产多消费者
- codeforces 297 E. Anya and Cubes
- VC中对CString 的读写(ini文件)
- 在输出终端中消除多余空格
- [原创]红马版验证码实现(中文+变形+噪点)
- 2019最后一个月Python继续霸榜,想上车?看这份书单