当前位置:网站首页>缓存中间件技术选型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 作为缓存的中间件相对来说是比较好的。
边栏推荐
- COVID-CT新冠肺炎检测(DenseNet网络)
- 飞书更新招聘功能 候选人可选择面试时间
- POJ1094Sorting It All Out题解
- ECCV 2022 | Towards Data Efficient Transformer Object Detectors
- Neck modules of the yolo series
- 200PLC转以太网与研华webaccess modbusTCP客户端在空调机上应用配置案例
- 划重点!2022面试必刷461道大厂架构面试真题汇总+面经+简历模板
- 节流函数(每隔一段时间就会执行一次)
- 11. Network planning and design
- 隐私计算与数据流通:关系、作用及功能
猜你喜欢
随机推荐
Flutter使用 json_serializable 解析 JSON 最佳方案
*W3C* Standards Organization
matlab串口读写
微信公众号之底部菜单
缓存字符流
ESP8266-Arduino编程实例-MQ3酒精传感器驱动
【目标检测】------yolo:xml和txt文件相互转化
电源输出的Overshoot和Undershoot 测试
Tapdata 开源项目基础教程:功能特性及实操演示
OAuth2图文快速入门
IBM Q复制启动停止查看状态
【目标检测】YOLOv4特征提取网络——CSPDarkNet53结构解析及PyTorch实现
抗积分饱和PID控制器
表的完整性约束;非外键约束
独立站卖家如何使用 WhatsApp Business API 建立有意义的客户关系?
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
Flutter强大的下拉筛选菜单gzx_dropdown_menu
SchedulX V1.5.0发布,提供快速压测、对象存储等全新功能!
隐私计算与数据流通:关系、作用及功能
直击面试!阿里金九银十最新面试小册 稳过!