周其仁:停止改革,我们将面临三大麻烦

抛开立场观点不谈,且看周小平写一句话能犯多少语病

罗马尼亚的声明:小事件隐藏着大趋势——黑暗中的风:坚持做对的事相信未来的结果

布林肯突访乌克兰,为何选择去吃麦当劳?

中国不再是美国第一大进口国,贸易战殃及纺织业? 美国进一步延长352项中国商品的关税豁免期

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

数据库历险记(二) | 缓存框架的前世今生

陈裕荣 树哥聊编程 2022-10-25

说起缓存框架,我们最常用的缓存框架有 memcached、Redis 这两个,但它们之间其实是有差异的。


1Memcached 的诞生


2003年5月,Brad Fitzpatrick 发布了第一个版本的 Memcached,一开始主要是为了解决 LiveJournal 网站访问缓存问题而诞生的,这个版本的 Memcached 使用 Perl 语言编写。之后 Anatoly Vorobey 使用 C 重写了 Memcached。现在 Memcached 已经被广泛应用于 YouTube、Reddit、Facebook 等网站。


说起 Memcached 的诞生,主要还是因为关系型数据库在存储性能上的瓶颈。因为进入21世纪,随着个人电脑的普及,世界网民数量急剧攀升,网站的访问量也随之攀升。因为关系型数据库需要将数据持久化,所以会有一些写硬盘IO的过程,因此在写入数据上会有瓶颈。而为了解决硬盘IO速度慢的问题,Memcached 则是将所有数据存储在了内存中,从而能实现快速的数据写入和读取。


也是因为 Memcached 将数据存储在内存中,没有实现持久化,所以当出现一些意外情况,例如:断电重启、机器宕机等情况,Memcached 存储的数据会全部丢失,我们只能重新从数据库中读取一次,再加载到 Memcached 中。除此之外,Memcached只支持单一的 key-value  存储,所以这里面存储的数据类型单一,无法适应多样化的业务发展。


2Redis 的诞生


正是因为以上问题的存储,所以在2009年5月的时候Redis诞生了。Redis创建者看到了Memcached身上存在的许多问题,所以创建了Redis缓存框架。


在Redis缓存框架中,它支持多达 6 种类型的数据存储,并且提供了多个原子命令操作。并且Redis还支持了将数据持久化到本地文件,这样当发生意外时就不需要再从数据库读取一遍数据了,直接读取本地文件恢复即可。


3到底哪一个更好?


从两个缓存框架的发展历程来看,我们可以知道Redis是Memcached的升级版本,Memcached具有的功能Redis基本上都具备了。


很多时候我们都是使用Redis作为首选的缓存框架,当然了Memcached也有一些比Redis好一些的性能,比如在存储完全静态的小量 key-value 数据时,Memcached会比Redis快一些。


但只要数据量稍微大一点,或者数据是动态的,那么Memcached的性能就会直线下降。


所以即使Memcached在某些方面有细微的优势,但总体上Redis还是优于Memcached这个缓存框架的。


如果觉得文章还不错,记得点赞评论转发哦。


推荐阅读


长按关注公众号,查看更多优质文章




文章有问题?点此查看未经处理的缓存