caching - Redis 缓存 vs 直接使用内存

标签 caching memory redis

我还没用过Redis,但听说过,打算试试缓存存储。

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

var cache = {
    key: {

    },
    key: {

    }
    ...
}

Redis 有什么优势?

最佳答案

Redis 是一个远程 数据结构服务器。它肯定比仅将数据存储在本地内存中要慢(因为它涉及套接字往返来获取/存储数据)。不过,它也带来了一些有趣的特性:

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

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

  • 如果需要,Redis 可以将数据持久化到磁盘上。

  • Redis 不仅仅是一个简单的缓存:它提供了各种数据结构、各种项目驱逐策略、阻塞队列、发布/订阅、原子性、Lua 脚本等......

  • Redis 可以通过主/从机制复制其事件,以实现高可用性。

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

关于caching - Redis 缓存 vs 直接使用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477821/

相关文章:

asp.net - 我们如何限制只能从某些IP访问redis?

c# - 无法将 FSCTL_GET_RETRIEVAL_POINTERS 调用移植到 C#

mysql - 我应该选择哪个数据库?

Redis故障转移场景

hibernate - Grails域类中的Hibernate缓存

c++ - C++中类对象属性的内存管理

Java堆空间错误neo4j

image - 在 Flutter 应用程序中预加载(所有)图像资源

android - BitmapFun 示例应用程序中的图像缓存 - 此检查背后的基本原理是什么

ruby-on-rails - Mongoid:缓存急切加载的文档