Redis和Memcached是流行的开源内存数据存储。虽然它们都易于使用,性能也很高,但在选择时,还是有一些重要的区别需要考虑。Memcached是为简单性而设计的,而Redis提供了一组丰富的特性,使它能够有效地用于各种各样的用例。
Memcached和Redis对比
1、亚毫秒级读取延迟
Redis和Memcached都支持亚毫秒级的响应时间。通过将数据存储在内存中,他们可以比基于磁盘的数据库更快地读取数据。
2、高级数据结构
Memcached是一个分布式内存缓存系统,设计简单易用,适合用作缓存或会话存储,只支持简单数据类型,需要客户端自己处理复杂对象。
Redis除了支持字符串,还支持列表、集合、排序集合、散列、位数组和超级日志等高级数据结构。应用程序可以使用这些更高级的数据结构来支持各种用例。例如,您可以使用Redis排序集轻松实现一个游戏排行榜,该排行榜保存了一个按排名排序的玩家列表。
3、多线程架构
因为Memcached是多线程的,所以它可以利用多个处理核心,这意味着您可以通过扩展计算能力来处理更多操作。Redis只使用单核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
4、快照
有了Redis,您可以通过时间点快照将数据保存在磁盘上,该快照可用于存档或恢复。而Memcached不支持快照功能。
5、创建副本
Redis允许您创建一个Redis主服务器的多个副本,这允许您扩展数据库读取并拥有高度可用的集群。Memcached则不能创建多个副本。
6、发布/订阅
Redis支持带有模式匹配的发布/订阅消息传递,您可以使用它来获得高性能闲聊室实时评论流、社交媒体源和服务器互通。Memcached协议简单,不互相通信的分布式。