Redis可以执行Memcached提供的所有功能(LRU缓存,项目到期,现在在3.x +版本中,目前处于beta版,目前可以在集群中)或使用twemproxy之类的工具。性能也差不多。此外,Redis添加了持久性,因此在服务器重新启动时无需进行缓存预热。
请参考一些比较Redis和Memcache的旧答案,其中一些更喜欢Redis代替Memcache(如果已存在于堆栈中):
Memcached与Redis?
与Redis相比,记忆快取是恐龙吗?
Redis和Memcache还是Redis?
尽管如此,在研究大型网络公司(如Instagram,Pinterest,Twitter等)的堆栈时,我发现他们同时将Memcached和Redis用于不同目的,而不是将Redis用于主要缓存。主缓存仍是Memcached,Redis用于基于逻辑缓存的数据结构。
从2014年开始,当您已经拥有可以执行memcached可以做的所有事情的Redis组件时,为什么仍然值得把memcached作为额外的组件添加到堆栈中呢?有什么优势使建筑师/工程师除了已经存在的Redis之外仍包括内存缓存?
更新:对于我们的平台,我们已经完全丢弃了Memcached,并使用redis满足了普通缓存和逻辑缓存的要求。高性能,灵活且可靠。
一些示例方案:
按特定模式列出所有缓存的键,然后读取或删除它们的值。在redis中非常容易,在memcached中不容易做到。要存储超过1mb的有效负载(在Redis中很容易做到),需要在memcached中调整平板大小,这本身就有性能方面的副作用。当前缓存内容的简单快照Redis集群以及语言驱动程序也已准备就绪,因此集群部署也很容易。