Rediscachingvs直接使用内存

我还没有使用Redis,但是我听说过它,并计划尝试它作为caching存储。

我听说Redis使用内存作为caching存储数据库,那么如果我使用variables作为对象或字典数据types来存储数据,有什么区别呢? 喜欢:

var cache = { key: { }, key: { } ... } 

Redis有什么优势?

Redis是一个远程数据结构服务器。 这肯定比将数据存储在本地内存中慢一些(因为它涉及socket往返取取/存储数据)。 但是,它也带来了一些有趣的属性:

  • Redis可以被应用程序的所有进程访问,可能运行在多个节点上(本地内存无法实现)。

  • Redis内存存储非常高效,并在单独的过程中完成。 如果应用程序在内存被垃圾回收的平台上运行(node.js,java等),它允许处理更大的内存caching/存储。 在实践中,非常大的垃圾堆使用垃圾收集语言performance不佳。

  • 如果需要,Redis可以将数据保存在磁盘上。

  • Redis不仅仅是一个简单的caching:它提供了各种数据结构,各种项目驱逐策略,阻塞队列,pub / sub,primefaces性,Lua脚本等等。

  • Redis可以使用主/从机制复制其活动,以实现高可用性。

基本上,如果您需要在多个共享相同数据的节点上扩展您的应用程序,则需要像Redis(或任何其他远程键/值存储)那样的应用程序。