【技术干货】缓存随谈系列之一:数据库缓存
本文作者: 乔锐杰 现担任上海驻云信息科技有限公司运维总监/架构师。曾任职过黑客讲师、java软件工程师/网站架构师、高级运维、阿里云架构师等职位。维护过上千台服务器,主导过众安保险、新华社等千万级上云架构。在云端运维、分布式集群架构等方面有着丰富的经验。
以下正文
我是个很懒的人,喜欢自己偷着练“葵花宝典”,唯一可以看到我之前网上写的安全方面的文章,还是好几年前的事情了。公司最近来了一群美女,可是热闹了,写稿奖励美女,我老兴奋了。
说起缓存相关技术,老多了, memcache、redis、squid、varnish、web cache、 CDN等等。缓存技术五花八门,但这些技术间有什么共性的地方,又有什么不同的地方呢?答案肯定是有的,这次为大家分享及整理一下缓存方面的技术,主要分为三个系列展开:
缓存随谈系列之一:数据库缓存
缓存随谈系列之二:静态缓存
缓存随谈系列之三:动态缓存
一、什么是数据库缓存
我们知道常见的数据库,比如oracle、mysql等,数据都是存放在磁盘中。虽然在数据库层也做了对应的缓存,但这种数据库层次的缓存一般针对的是查询内容,而且粒度也太小,一般只有表中数据没有变更的时候,数据库对应的cache才发挥了作用。但这并不能减少业务系统对数据库产生的增、删、查、改的庞大IO压力。所以数据库缓存技术在此诞生,实现热点数据的高速缓存,提高应用的响应速度,极大缓解后端数据库的压力。
以下为memcache数据库缓存为例,以图说明一下什么是数据库缓存:
二、数据库缓存的技术特点
性能优越
数据库缓存的第一个技术特点就是提高性能,所以数据库缓存的数据基本上都是存储在内存中,相比io读写的速度,数据访问快速返回。而且在mysql 5.6的版本开始,已经把memcache这种跟数据库缓存直接挂钩的中间件直接集成进去了,已经等不及我们自己去单独部署对应数据库缓存的中间件了。
应用场景
针对数据库的增、删、查、改,数据库缓存技术应用场景绝大部分针对的是“查”的场景。比如,一篇经常访问的帖子/文章/新闻、热门商品的描述信息、好友评论/留言等。因为在常见的应用中,数据库层次的压力有80%的是查询,20%的才是数据的变更操作。所以绝大部分的应用场景的还是“查”缓存。当然,“增、删、改”的场景也是有的。比如,一篇文章访问的次数,不可能每访问一次,我们就去数据库里面加一次吧?这种时候,我们一般“增”场景的缓存就必不可少。否则,一篇文章被访问了十万次,代码层次不会还去做十万次的数据库操作吧。
数据一致性
暂不说用不用数据库缓存,见过有人把session存储在数据库中的,也见过把视频/文件转化成二进制存储在数据库的,这种行为无疑是逆天的。合理应用数据库缓存技术,且行且珍惜,切勿走向误区。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【运维必读】在云计算时代,这是系统运维都需要的产品!
云计算时代到来了,大家都习惯了通过在线购买服务器或数据库的方式来构建公司的整个互联网服务或者IT服务,大家很轻松的便通过云计算服务商的控制面板,很容易的就获得了最终服务器的访问权,可以很容易的对虚拟服务器,数据库等计算节点方便的操作。 但是这往往也隐藏着很多管理上的危险,即公司中每个人可能都是通过互联网在管理服务器的,作为管理者的你可能并不知道管理员是来自哪里,是不是真的是公司的成员。其次,每个人到底在服务器上做了什么操作,哪些操作可能是危险操作,包括是否有人可能正将服务器中的重要数据向外搬运,你也不知道。 这个时候,碉堡云这款产品就是每一个使用云计算公司所必须的产品了。 首先,这一款Saas化的产品,其设计和传统的软件相比,最大的特点就是简单易用。但简单易用并不意味着功能弱。实际上这是一款非常强大的软件。碉堡云可以支持Linux,Windows及Mysql的操作审计,远程监控等功能,你无须特别的管理工具,仍然可以通过对应的软件客户端来操作服务器或数据库如SSHClient或Mysql的各种客户端,同时针对数据库,还有特别强大的误操作阻断功能。比如当DBA在连接到数据库执行一个删...
- 下一篇
在阿里云上遇见更好的Oracle(一)
2003年毕业那年正好遇上非典,好不容易找到一份制造工厂的工作,凭着一点点的SQL基础进入了IT部门,在那里第一次听说了Oracle。在此之前,我对数据库的认知基本还停留在Access阶段,耳闻过一点SQL Server,据说那才是真正的数据库。然而研究了一段时间Oracle之后,就被其丰富的特性和完整的文档所吸引,决定把今后十年的职业生涯赌在Oracle DBA这个方向上。 在工作的前几年,辗转广东上海几家公司,都没有多少机会在生产环境中接触Oracle,全凭着个人爱好在业余时间折腾,也逐渐在当时火热的数据库论坛itpub上积累了一定的名气。于是有幸在2007年加入了淘宝DBA团队,才真正开始接触小型机、存储和Oracle生产环境的数据库。在这里凭着之前打下的扎实基础和各种高压力的环境,得到了快速的成长。当时号称亚洲最大的20节点的RAC,曾经出现过一次ASM磁盘头的故障,处理了差不多一整个通宵,各种细节至今想来仍是历历在目。 2009年开始,淘宝的核心数据库逐渐从IBM小型机+EMC存储+Oracle数据库切换到PC Server+MySQL的分布式架构,也就是后来阿里云大力宣传的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Hadoop3单机部署,实现最简伪集群