博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis和Memcached的选择
阅读量:6554 次
发布时间:2019-06-24

本文共 1012 字,大约阅读时间需要 3 分钟。

hot3.png

看到很多人推荐使用Redis代替Memcached,我觉得这两个是不一样的东西,它们的关系应该是共存而不是替代。

Memcached是个纯内存型的缓存系统,支持数据类型单一,单个缓存数据有限制,支持分布式,我觉得这是个很理想的缓存系统。

Redis是个简单的NOSQL,支持几种简单的数据类型,支持主从复制,支持持久化,可以看作是个内存型数据库。

由此可见,Memcached是正宗的缓存,Redis是个可以做缓存系统的内存型数据库。

由于Redis的数据可以设置过期时间,支持多种数据类型,数据大小无限制,支持持久化等特点,貌似怎么看都稳压Memcached一筹,替代它好像是大势所趋。

事实并非如此。

网站需要缓存的数据可以分为两种,一种是可丢失性的缓存,这种缓存不在乎被丢失,丢失了就再从数据库或其它地方再读回来,如Session,从数据库查询的数据,应用代码的缓存等;另一种是不可丢失性的缓存,就是其它地方没保存有,只有Redis缓存有的数据。

先说下Memcached和Redis的优缺点:

Memcached是纯内存型的缓存,占用内存小,运行稳定,读写数据很快。Redis的数据可以持久化到硬盘,占用内存大,占用硬盘IO高,在写频繁的时候而硬盘性能又不高的时候(目前只有SSD固态硬盘的性能才高,机械硬盘性能都不高),大大占用CPU资源,读写性能会急剧降低,甚至会崩溃,不稳定。

为什么说Memcached可以缓存Session数据?有的人说,Memcached崩溃会造成Session丢失,我觉得这个可能性真的不大。Session是每个页面都需要读,每个新用户都需要写的,而且大部分的Session数据都是可丢失性的数据(一般网站陌生人Session比登录用户Session要多的多),数据量也很小,非常适合保存在Memcached。

Memcached其实是非常稳定的,目前我们网站每天百万PV,没出现过Memcached崩溃的问题。只要服务器不崩溃,不是人为关闭,Memcached几乎没有崩溃的可能。如果服务器经常崩溃的话,我觉得应该考虑换个好点的服务器而不是把Memcached换成Redis。

当然了,Redis也有其适用的场合,我会在下一篇博文中,详细介绍我的网站使用Redis保存哪些不可丢失性数据。

转载于:https://my.oschina.net/u/204616/blog/547002

你可能感兴趣的文章
《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷
查看>>
C# for循环①护栏长度 ②广场砖面积 ③判断闰年平年
查看>>
mysql数据库中,查看数据库的字符集(所有库的字符集或者某个特定库的字符集)...
查看>>
LintCode刷题——打劫房屋I、II、III
查看>>
第七次课程作业
查看>>
C++ 文本查询2.0(逻辑查询)
查看>>
Objective-C学习总结-13协议1
查看>>
web学习方向
查看>>
寒假训练营第四次作业
查看>>
SQLServer 维护脚本分享(05)内存(Memory)
查看>>
A*算法实现
查看>>
第一周 从C走进C++ 002 命令行参数
查看>>
【java】itext pdf 分页
查看>>
看看这个电脑的配置
查看>>
用户自定义控件(.ascx)
查看>>
[转]【NoSQL】NoSQL入门级资料整理(CAP原理、最终一致性)
查看>>
RequireJS进阶(二)
查看>>
.NET中数组的隐秘特性
查看>>
我设计的网站的分布式架构
查看>>
python基础学习笔记(十三)
查看>>