当前位置: 首页 > 知识库问答 >
问题:

内存分布式缓存中的数据分区与数据持久化

柳项明
2023-03-14
    null

假设我有100张唱片。缓存只能保存40条记录(最常用)和100条记录在磁盘文件(不在任何其他数据库中)。

  1. 所以,如果从这100条记录中请求任何东西,我就不必去实际的数据库(例如Sybase db)?
  2. 如果在100条记录中找到了密钥,但它不存在于内存缓存中(40条记录),则获取该密钥,放入内存缓存中,并使用驱逐策略将其他密钥交换到磁盘文件中(但在磁盘上,我总是有100条记录)
  3. 如果缓存和磁盘文件中没有密钥,那么我们只需转到数据库(Sybase)并获取它。

共有1个答案

劳仲渊
2023-03-14

使用Ignite(以及包括Redis在内的绝大多数其他分布式系统),只要监视显示某个节点即将超出分配的RAM空间,就可以扩展集群。只需在Ignite集群中添加一个额外的节点,数据就会自动重新分配。

此外,使用Ignite,您可以选择启用它的本地持久性,以存储超过RAM容量的数据,并进行瞬时重启。在重新启动时,不需要在RAM中预加载任何东西,从磁盘中读取。

希望能有所帮助。根据所提供的细节,Ignite非常适合您。

 类似资料:
  • 我在研究内存数据库的概念。有关这方面的文章说, 内存数据库系统是一种将数据完全存储在主存中的数据库管理系统。 他们讨论了这个概念的优点和缺点。 我的问题是如果这些数据库管理系统将数据完全存储在主存储器中, 停电后所有数据都消失了吗??? 还是有办法保护数据???

  • Web 应用程序可能需要为成百上千甚至更多的用户同时提供服务。如果你没有采取必要的措施,在这种负载下,你的网站可能会崩溃或变得没有响应。 假设在主页显示最后 10 条新闻,并且平均每分钟有上千名用户访问此页面。你可能为每个用户通过查询数据库来显示页面视图信息: SELECT TOP 10 Title, NewsDate, Subject, Body FROM News ORDER BY NewsD

  • 我想写一个脚本,它将2 GB的数据从硬盘加载到内存中,然后当其他程序请求时,它必须得到一个输入,并根据输入对这个数据进行一些计算。对我来说,重要的是将这2 GB的数据持久地保存在内存中,以加快计算速度,更重要的是避免巨大的I/O负载。 我应该如何将数据永远保存在内存中?或者更一般地说,我应该如何在Python中解决这样的问题?

  • 我计划在应用程序中使用Hazelcast作为分布式缓存。我们必须在缓存中加载大约300个条目的静态数据。我们计划只使用嵌入式缓存拓扑。任何数据库都不会备份缓存。因此,数据的唯一来源是该缓存。因此,我想知道是否可以通过某种方式手动加载缓存中的数据,而不是通过Hazelcast管理中心的编程方式? 此外,当我在不同的数据中心部署应用程序时,嵌入式拓扑是否适用于分布式缓存?

  • 问题内容: 我正在寻找Java分布式缓存解决方案。我们希望功能喜欢: 我们已经分析了Terracotta这样的框架,它似乎是缓存框架中我们想要的一切……但是,似乎需要一个中央缓存节点,这成为我们的单点故障。 除了推出我们自己的解决方案之外,还有其他想法吗? 问题答案: 我建议使用JBossCache或EhCache(使用分布式缓存侦听器)。我都用过,我都喜欢,它们都适合您的要求。

  • 问题内容: 我正在计划将C#ASP.Net Web应用程序移到Azure(当前托管在单个专用服务器上)的过程中,并且正在研究缓存选项。当前,因为我们一次只能运行一个应用程序实例,所以我们有一个“进程中”内存缓存来缓解SQL DB的某些相同请求。 当前的过程是在管理器/服务对数据库的那些部分进行更改时清除缓存的某些部分,例如,我们有一个用户表,并且我们将拥有诸如“ User。{0}”之类的键,返回一