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中。后面的工作:后台会有相关机制把Redis中的save_update_keys存储的key,分别读取出来,找到对应的数据,更新到DB中。

  优点:这个流程的主要目的是把Redis当作数据库使用,更新获取数据比DB快。非常适合大数据量的频繁变动(比如微博)。

  缺点:对Redis的依赖很大,要做好宕机时的数据保存。(不过可以使用redis的快照AOF,快速恢复的话,应该不会有多大影响,因为就算Redis不工作了,也不会影响后续数据的处理。)

  难点:在前期规划key的格式,存储类型很重要,因为这会影响能否把数据同步到DB。

最新文章

  1. laravel5 安装笔记
  2. 21.2 Partitioning Types
  3. 今天逛VC驿站 的收获
  4. UML建模类型(转载)
  5. div嵌套内层div的margin-top转移给外层div的解决办法
  6. ios 相册相关
  7. PHP基础示例:商品信息管理系统v1.1
  8. 基于Qt的类QQ气泡聊天的界面开发
  9. 移动平台Unity3D 应用性能优化
  10. 1.如何安装maven
  11. Web Mining and Big Data 公开课学习笔记 ---lecture1
  12. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战
  13. FPGA高速ADC接口实战——250MSPS采样率ADC9481
  14. 三丶JavaScript 的基础学习(一)
  15. JS学习笔记Day14
  16. day70 cookie & session 前后端交互分页显示
  17. [P3957][NOIP2017]跳房子 (DP+二分/队列?)
  18. C3P0连接池、DBCP连接池
  19. 安卓开发----TextView控件属性列表(转)
  20. 前端路由简介以及vue-router实现原理

热门文章

  1. Linux内核--网络栈实现分析(二)--数据包的传递过程--转
  2. centos 配置NFS服务器
  3. cocos2d-x回收池原理
  4. Firefox便携版
  5. make clean 和make distclean的区别
  6. ganymed-ssh2使用
  7. 使用Hibernate框架技术时,对项目进行的配置
  8. [改善Java代码]不要只替换一个类
  9. 24小时学通Linux内核之如何处理输入输出操作
  10. Dynamic\Static\IsKinematic