【问题标题】:Redis - Can data size be greater than memory size?Redis - 数据大小可以大于内存大小吗?
【发布时间】:2011-02-04 06:15:41
【问题描述】:

我对 Redis 比较陌生,在使用它之前,我想了解一些重要的(就我而言)细节。所以....

Redis 使用 RAM 和 HDD 来存储数据。 RAM用作快速读/写存储,HDD用于使这些数据持久化。当 Redis 启动时,它会将所有数据从 HDD 加载到 RAM 中,还是仅将经常查询的数据加载到 RAM 中?如果我在 HDD 上有 500Mb Redis 存储,但我只有 100Mb 或 RAM 用于 Redis,该怎么办。我在哪里可以阅读它?

【问题讨论】:

    标签: redis


    【解决方案1】:

    Redis 将所有内容加载到 RAM 中。所有数据都写入磁盘,但只会在重新启动服务器或进行备份等操作时读取。

    不过,有几种方法可以让您使用比数据更少的 RAM。您可以将它与 MySQL 或其他基于磁盘的存储结合使用,以像 memcached 一样工作 - 您可以手动管理缓存未命中和持久性。

    Redis 有一个 VM 模式,其中所有键都必须适合 RAM,但不经常访问的数据可以在磁盘上。但是,我不确定这是否在稳定版本中。

    【讨论】:

    • 很有用,但是你从哪里知道VM模式?在文档中找不到。或者您正在检查新版本的源代码?
    • 自从这篇文章以来,Redis VM 已被弃用,很快将被删除。
    • 真诚回答2019年需要重写
    【解决方案2】:

    最近的版本 (>2.0) 有了显着改进,内存管理更加高效。请参阅这篇解释如何使用哈希优化 RAM 内存占用的博文:http://antirez.com/post/redis-weekly-update-7.html

    【讨论】:

      【解决方案3】:

      称为虚拟内存的功能已被官方弃用

      Redis 虚拟机现已弃用。 Redis 2.4 将是具有虚拟内存的最新 Redis 版本(但它也警告您不鼓励使用虚拟内存)。我们发现使用 VM 有几个缺点和问题。在 Redis 的未来,我们只想提供有史以来最好的内存数据库(但像往常一样持久保存在磁盘上),至少目前不考虑对大于 RAM 的数据库的支持。我们未来的工作重点是提供脚本、集群和更好的持久性。

      关于虚拟机的更多信息:https://redis.io/topics/virtual-memory

      【讨论】:

        猜你喜欢
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 2022-11-29
        • 2011-11-30
        • 2011-06-11
        • 1970-01-01
        • 2019-11-24
        相关资源
        最近更新 更多