Memcached, Redis, MongoDB区别

mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。

和memcached更为接近的是redis。它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。在我们团队的项目中,一开始用的是memcached,后来用redis替代。

相比memcached:

1、redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。

2、redis具备binlog功能,可以将所有操作写入日志,当redis出现故障,可依照binlog进行数据恢复。

3、redis支持virtual memory,可以限定内存使用大小,当数据超过阈值,则通过类似LRU的算法把内存中的最不常用数据保存到硬盘的页面文件中。

4、redis原生支持的数据类型更多,使用的想象空间更大。

5、前面有位朋友所提及的一致性哈希,用在redis的sharding中,一般是在负载非常高需要水平扩展时使用。我们还没有用到这方面的功能,一般的项目,单机足够支撑并发了。redis 3.0将推出cluster,功能更加强大。

6、redis更多优点,请移步官方网站查询。

7. 性能

Redis作者的说法是平均到单个核上的性能,在单条数据不大的情况下Redis更好。为什么这么说呢,理由就是Redis是单线程运行的。
因为是单线程运行,所以和Memcached的多线程相比,整体性能肯定会偏低。
因为是单线程运行,所以IO是串行化的,网络IO和内存IO,因此当单条数据太大时,由于需要等待一个命令的所有IO完成才能进行后续的命令,所以性能会受影响。

 

 

转载于:https://www.cnblogs.com/davidgu/p/3665589.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDBMemcachedRedis 都是在现代应用中常用的存储解决方案,它们各自有着特定的设计目的和应用场景。 **MongoDB** MongoDB 是一个基于文档的数据存储系统,它属于 NoSQL 数据库家族的一员。其最大的特点就是提供了类似 JSON 的文档结构来进行数据存储,并允许你通过灵活的查询语言对数据进行复杂操作。这使得 MongoDB 特别适合处理非结构化或半结构化的数据,并能够快速响应读取需求。MongoDB 支持主从复制、分片集群以及事务等功能,适用于需要高性能读取、高并发处理的应用场景。 **Memcached** Memcached 是一个高速内存缓存系统,主要用于提高网站加载速度。它是一种分布式缓存服务器,通过将数据存储在内存中而不是磁盘上,可以显著减少数据库访问次数并加速数据处理过程。Memcached 使用简单的 key-value 存储模型,其中 key 由客户端生成,value 可以是一个字符串或序列化的对象。它的设计旨在提供无状态服务,这意味着不需要持久化存储或复杂的备份策略。Memcached 主要用于缓存静态数据和频繁访问的数据,如用户会话信息、页面内容等。 **Redis** Redis 是一种开源的键值存储系统,它不仅支持简单的 key-value 存储,还具备丰富的数据结构支持,包括列表、集合、哈希表、有序集合等,使其成为处理更复杂数据类型的应用理想选择。Redis 提供了多种数据操作命令,既可以在内存中存储数据也可以持久化到硬盘,支持自动过期功能,还可以作为消息队列系统使用。Redis 的优点在于其极高的性能和可靠性,在大数据量和高并发环境下都能展现出卓越的能力。它可以用于缓存、会话管理、消息中间件等多种用途。 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值