当前位置:网站首页>缓存中间件技术选型Memcached、MongoDB、Redis
缓存中间件技术选型Memcached、MongoDB、Redis
2022-08-04 12:07:00 【飞四海】
搜搜补补加上自己的理解梳理了一下 市面上比较流行的缓存中间件(Memcached、MongoDB、Redis)进行简单对比。
一般从几个维度来考虑:
- 数据结构
- 持久化
- 集群
- 性能
| Memcached | MongoDB | Redis | |
|---|---|---|---|
| 数据结构 | 简单key-value | 非常全面,文档型数据库 | 多种String、list、set、hash、bitmap |
| 持久化 | 不支持 | 支持 | 支持 |
| 集群 | 客户端自己控制 | 支持 | 支持 |
| 性能 | 强 | 中等 | 强 |
在我了解,目前市面上通用的缓存中间件技术是 Redis,使用 MongoDB 的公司最少,因为它只是一个数据库,由于它的读写速度与其他数据库相比较快,所以人们才把它当作类似缓存的存储
Redis为什么比Memcached快呢?
几个方面:
- **数据结构:**举个例子,在使用 Memcached 保存 List 缓存对象的过程中,如果我们往 List 增加一条数据,首先需要读取整个 List ,再反序列化塞入数据,接着再序列化存储回 Memcached。而对于 Redis 而言,它仅仅是一个 Redis 请求,会直接帮我们塞入数据并存储,简单快捷。
- **持久化:**对于 Memcached 来说,一旦系统宕机数据就会丢失。通过 Memcached 的官方文档得知,1.5.18 以后 Memcached 支持 restartable cache,其实现原理是重启时 CLI 先发信号给守护进程,然后守护进程将内存持久化至一个文件中,系统重启时再从那个文件恢复数据。不过,这个设计仅在正常重启情况下使用,意外情况还是不处理。
- **集群:**Memcached 的集群设计非常简单,客户端根据 Hash 值直接判断存取的 Memcached 节点。而 Redis 的集群因在高可用、主从、冗余、failover 等方面都有所考虑,所以集群设计相对复杂些,属于较常规的分布式高可用架构。
所以 Redis 作为缓存的中间件相对来说是比较好的。
边栏推荐
猜你喜欢

The sword refers to the Great Wall Cannon?Official spy photos of Changan's new pickup

Apache Doris 1.1 特性揭秘:Flink 实时写入如何兼顾高吞吐和低延时

200ppi转以太网通过4Gwifi在医药设备移动平台(平板电脑、手机)

TensorFlow学习记录(三):高阶操作 & 神经网络与全连接层

云原生Devops 的实现方法

电源测试之输出动态响应(Output Dynamic Response Test)

简要介绍电源效率测试

记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!

2022上半年各银行理财子公司深耕差异化发展,净值型产品数量增加

十一、网络规划设计
随机推荐
请 AI 画家弄了个 logo,网友热议:画得非常好,下次别画了!
【目标检测】yolov2特征提取网络------Darknet19结构解析及tensorflow和pytorch实现
yolo系列的head模块
DC-DC电源中前馈电容的选择
节流函数(每隔一段时间就会执行一次)
244页pdf!《2022 中国云计算生态蓝皮书》发布
Share | technology integration electronic fence function of scheduling system
WPF 截图控件之画笔(八)「仿微信」
喂,你知道节流是什么吗?
COVID-CT新冠肺炎检测(DenseNet网络)
[牛客网]OR63删除公共字符
Flutter 使用 json_serializable 解析 JSON 支持泛型
不会还有人不知道防抖吧?
国际原子能机构总干事警告称扎波罗热核电站安全形势已“完全失控”
考研数一数二数三之间的具体详细区别
DQL-查询操作
【地平线旭日X3派试用体验】从开机到点灯(第一节)
Based on the BiLSTM regression forecast method
云原生Devops 的实现方法
动手学深度学习_LeNet