我们目前使用memcache来存储会话数据。我听说memcached或redis更好。我需要了解它们之间的区别,从而了解哪一个是最佳选择。
我们目前使用memcache来存储会话数据。我听说memcached或redis更好。我需要了解它们之间的区别,从而了解哪一个是最佳选择。
这个回答非常详细地解释了它们之间的区别。 Memcached vs. Redis?
但如果你想要一个简单的答案,那就是:
Redis
Memcached
所以基本上,如果你不真正关心Redis的这两个主要优势,你应该使用memcached。
如果说有什么区别的话,恰恰相反。Redis可以水平扩展,而Memcached可以垂直扩展
Memcached服务器独立工作,客户端库使用会合算法来确定数据存储在哪个服务器上。它可以处理数千个服务器(这就是为什么除了TCP memcached还支持UDP协议的原因,在不实际打开这么多连接的情况下)。因为它是多线程的,所以在性能方面,在运行redis的同一台机器上将更有效地利用硬件。
Redis传统上作为单个服务器开始以确保一致性(并且使用单个线程编程也更容易)。为了适应那些使用重要数据的人,它可以定期将其状态转储到磁盘,或者存储操作日志,然后可以在服务启动时重新创建。
还有集群,您可以设置多个服务器进行阴影和故障转移。这使得客户端上的可扩展性更加容易,因为服务器将数据转发到正确的服务器。但是,这种方法仍然比memcached表现差,因为memcache客户端直接向正确的服务器发送数据。正如前面提到的,从jepsen测试中redis表现不佳,但我很高兴他们更新了文档以说明redis不提供强一致性。
据说正在进行redis-raft的工作,可能会尝试修复它,但据我所知,尚未发布。
memcached只有LRU淘汰策略,而redis有6种不同的策略。