我还没有使用过Redis,但我听说过它,并打算尝试将其作为缓存存储。
我听说Redis使用内存作为缓存存储数据库,那么如果我使用变量作为对象或字典数据类型来存储数据有什么区别?喜欢:
var cache = { key: { }, key: { } ... }
Redis有什么优势?
Redis是一个 远程 数据结构服务器。这肯定比仅将数据存储在本地内存中要慢(因为它涉及套接字往返来获取/存储数据)。但是,它也带来了一些有趣的属性:
应用程序的所有进程都可以访问Redis,这些进程可能运行在多个节点上(某些本地内存无法实现)。
Redis内存存储非常高效,并且是在单独的过程中完成的。如果应用程序在其内存被垃圾回收的平台(node.js,java等)上运行,则它可以处理更大的内存缓存/存储。在实践中,非常大的堆在使用垃圾收集语言时效果不佳。
如果需要,Redis可以将数据保留在磁盘上。
Redis不仅仅是一个简单的缓存:它提供各种数据结构,各种逐出策略,阻止队列,发布/订阅,原子性,Lua脚本等等。
Redis可以使用主/从机制复制其活动,以实现高可用性。
基本上,如果您需要应用程序在共享相同数据的多个节点上扩展,则将需要像Redis(或任何其他远程键/值存储)之类的东西。