缓存就是在内存中存储的数据备份,当数据没有发生本质变化的时候,我们避免数据的查询操作直接连接数据库,而是去    内容中读取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度要比从数据库查询要快很多。

使用redis有哪些好处?

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

(2) 支持丰富数据类型,支持string,list,set,sorted set,hash

(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

一.数据库缓存

常见的数据库,比如oracle、mysql等,数据都是存放在磁盘中。虽然在数据库层也做了对应的缓存,但这种数据库层次的缓存一般针对的是查询内容,而且粒度也太小,一般只有表中数据没有变更的时候,数据库对应的cache才发挥了作用。但这并不能减少业务系统对数据库产生的增、删、查、改的庞大IO压力。所以数据库缓存技术在此诞生,实现热点数据的高速缓存,提高应用的响应速度,极大缓解后端数据库的压力

二.数据库缓存的技术特点

1.性能优越

数据库缓存的第一个技术特点就是提高性能,所以数据库缓存的数据基本上都是存储在内存中,相比io读写的速度,数据访问快速返回。

2.应用场景

针对数据库的增、删、查、改,数据库缓存技术应用场景绝大部分针对的是“查”的场景。比如,一篇经常访问的帖子/文章/新闻、热门商品的描述信息、好友评论/留言等。因为在常见的应用中,数据库层次的压力有80%的是查询,20%的才是数据的变更操作。所以绝大部分的应用场景的还是“查”缓存。当然,“增、删、改”的场景也是有的。比如,一篇文章访问的次数,不可能每访问一次,我们就去数据库里面加一次吧?这种时候,我们一般“增”场景的缓存就必不可少。否则,一篇文章被访问了十万次,代码层次不会还去做十万次的数据库操作吧。

3.数据一致性

在很多应用场景中,当一个数据发生变更的时候,很多人在考虑怎么样确保缓存数据和数据库中数据保存一致性,确保从缓存读取的数据是最新的。甚至,有人在对应数据变更的时候,先更新数据库,然后再去更新缓存。我觉得这个考虑不太现实,一方面这会导致代码层次逻辑变得复杂,另外一方面也真想不明白还要缓存干什么了。在绝大多数的应用中,缓存中的数据和数据库中的数据是不一致的。即,我们牺牲了实时性换回了访问速度。比如,一篇经常访问的帖子,可能这篇帖子已经在数据库层次进行了变更。而我们每次访问的时候,读取的都是缓存中的数据(帖子)。既然是缓存,那么必然是对实时性可以有一定的容忍度的数据,容忍度的时间可以是5分钟,也可以是5小时,取决于业务场景的要求。相反,一定要求是实时性的数据库,就不应该从缓存里读取,比如库存,再比如价格。

删除Redis缓存

1.访问redis根目录    cd  /usr/local/redis-2.8.19

2.登录redis:redis-cli -h 127.0.0.1 -p 6379

3.查看所有key值:keys *

4.删除指定索引的值:del key

5.清空整个 Redis 服务器的数据:flushall

6.清空当前库中的所有 key:flushdb

最新文章

  1. 学习SVG系列(4):SVG滤镜效果
  2. vim使用命令
  3. Python QRCODE
  4. hdu 4291 2012成都赛区网络赛 矩阵快速幂 ***
  5. (BZOJ4538)HNOI2016 网络
  6. HDU 3829 - Cat VS Dog (二分图最大独立集)
  7. 内存调试工具---valgrind
  8. iOS多线程的初步研究(二)-- 锁
  9. tomcat下jndi的三种配置方式
  10. \r,\n,\t
  11. 使用FlashFXP V3.8烈火汉化绿色版软件连接Linux
  12. .htaccess内容
  13. Java 热部署深入探索
  14. Java基础知识强化86:BigInteger类之BigInteger概述和构造方法
  15. 基于Qt的简单计算器
  16. [转]怎么查看和修改 MySQL 的最大连接数?
  17. 10-ajax技术简介
  18. Android内存优化(一)Dalvik虚拟机和ART虚拟机对比
  19. keepalived-1
  20. python 入门基础21 --面向对象_多态、内置方法、反射

热门文章

  1. Linux驱动开发之LED驱动
  2. 架构师成长之路5.1-Saltstack安装及入门
  3. Codeforces 837D - Round Subset DP
  4. OCP协议_电信特殊协议
  5. 7.Go-用户信息和系统文件目录
  6. lemon用法
  7. 组件(2):使用Prop下发数据
  8. nodejs之express入门
  9. 【Wince-DataTable填充ListView】DataTable的数据填充到ListView控件,适用.Net2.0
  10. python5---输入用户名和密码,登录三次不成功,无法再次登录