问题标签 [in-memory-data-grid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
81 浏览

database - 一个人如何获得在线学习 Redis 的帮助

我已经访问了Redis官方网站和更多其他平台的教程,但我仍然无法安装 Redis(内存数据结构存储)。

Github 上的README.md文件也无法让我完成安装和使用 Redis。

我是 Redis 的初学者,在学习或将其安装到系统和使用它时需要一些具体而简单的指导。

0 投票
1 回答
175 浏览

redis - 与中央数据库同步的内存数据库

场景:运行 HTTP 服务器的数百个节点响应时间要求严格的请求(必须处理请求并且必须在几毫秒内发回响应,例如最多 50 毫秒)。每台服务器每秒将处理大约 500 个请求(使所有节点共同服务超过 100,000 个 qps)。为了避免每次请求都连接到中央(远程)数据库,每个节点都会有一个数据库的内存副本(数据库应该只能保存几百兆字节的数据)。

问题 1:是否有任何数据库技术可以实现这种与中央数据库实时(或接近实时)同步的多个(数百个)内存中副本?

问题 2:是否有任何架构模式可以解决这种情况?

0 投票
1 回答
172 浏览

java - 如何使用 redisson 并保持微服务架构紧凑

我们有服务 A、B 和 C。

服务 C 连接到 Redis,而服务 A 和 B(通过 API)从服务 C 请求对象

我们不想与 A & B 共享 C 的 redis(直截了当)以保持数据源隔离规则。

我们在请求一些 API 调用时支付延迟的缺点(特别是在高峰时间)

我们想使用一些内存数据网格解决方案,因为我们发现我们主要在服务内存中缓存东西。

我们考虑过 hazelcast,但认为 redisson 可以使它顺利运行,因为我们已经在使用 redis。

我担心如果我们使用 redisson IMDG 解决方案,我们将关注微服务架构,因为服务 A 和 B 将直接到达 C 的 redis(而不是通过 API)

想法?

0 投票
1 回答
72 浏览

java - 是否存在具有“读取您的写入”保证和频繁更改数据的异步更新传播的嵌入式复制地图解决方案?

您好,提前感谢!

简而言之:

是否存在具有“读取您的写入”保证和频繁更改数据的异步更新传播的嵌入式复制地图解决方案?

描述:

系统包含两个服务(仅举例):

  1. 一个“导入器”——从外部系统接收数据,通过将接收到的数据与当前数据合并来更新系统数据,并将其传播到“user_api”服务。
  2. N 'user_api' 服务,经常为用户提供数据。

我正在通过在内存复制映射(很少请求历史数据和使用 MySQL)中保存最新数据(平均 2GB)来改善“user_api”的响应时间。我只需要放置/获取/删除操作。

我已经尝试过 Hazelcast 的 ReplicatedMap,其中每个服务都嵌入了 Hazelcast 实例。此外,我添加了单独的非嵌入式 Hazelcast 实例(使用默认 docker 映像),以便能够重新启动整个集群而不会丢失数据(防止 MySQL 的初始填充)。它几乎就像一个魅力。但是似乎有一个很大的缺点 - 它通过阻止写入操作来减慢“导入器”中的导入过程。

我需要的是本地 Map 读/写速度,异步更新传播到其他集群节点。我需要“阅读您的文章”保证并将异步更改传播到“user_api”服务。

我在这里找到了讨论:与 AWS 兼容的复制缓存解决方案。不同之处在于:提问者对频繁更新的案例不感兴趣。

我读了一些关于 Ignite 的文章,似乎它在这种情况下与 Hazelcast 的工作方式相同。关于 Geode:无法通过快速查看评论来了解他是否符合所描述的案例 - 需要更多时间进行调查。

总结问题:

  • 是否存在具有“读取您的写入”保证和频繁更改数据的异步更新传播的复制地图解决方案?
  • 如果在所有应用程序重新启动时有现成的可能性不会丢失数据(例如,通过使用默认 docker 映像或定期磁盘备份来保存单独的非嵌入式实例),这也很酷。
  • 也许我什至错过了 Hazelcast 文档中的一些观点?
0 投票
0 回答
237 浏览

python-3.x - 在 Python 中从 Web 加载 GRIB,而不在本地保存文件

我想从网上下载一个 GRIB 文件:

选项 1: https ://noaa-gfs-bdp-pds.s3.amazonaws.com/gfs.20210801/12/atmos/gfs.t12z.pgrb2.1p00.f000

选项 2: https ://www.ncei.noaa.gov/data/global-forecast-system/access/grid-003-1.0-degree/analysis/202108/20210801/gfs_3_20210801_1200_000.grb2 (仅供参考,数据相同)

这里提出了一个类似的问题: 如何在不先下载文件的情况下使用 pygrib 打开 GRIB 文件? 但是,最终没有给出最终解决方案,因为数据源有多个响应(导致问题)。当我尝试重新创建代码时:

我的错误是不同的:

我还尝试直接使用 osgeo.gdal 库(对于我的项目更可取,因为它已经在项目中使用)。文档:https ://gdal.org/user/virtual_file_systems.html#vsimem-in-memory-files :

错误:

对于 Attempt1 和 2:我觉得这两种尝试都应该在这里工作——通常你不需要任何特定的 AWS 凭证/连接来访问公开可用的 s3 存储桶数据(因为它是使用上面的 urllib 访问的)。

对于 Attempt3,这里有一个类似的问题: https ://gis.stackexchange.com/questions/395867/opening-a-grib-from-the-web-with-gdal-in-python-using-vsicurl-throws- error-on-m 但是我没有遇到同样的问题,我的输出:

基本上。我目前可以使用 urllib 下载文件,然后:

做我需要的。但是由于我们正在使用的系统,我们希望在临时处理时刻不将文件保存在本地。

Python版本:

干杯。

0 投票
1 回答
68 浏览

sql - Apache Ignite 是否真的需要使用存在问题且缺少某些功能的非常旧版本的 sqlline?

我看到 Apache Ignite(以及与此相关的 GG 版本)使用了一个非常旧的 sqlline 版本,它存在问题并且缺少某些功能。使用的版本是1.3.02017 年的,而最新版本是1.12.0.

出现这种情况的原因是因为 Ignite 中使用的旧版本存在某些问题并且缺少新版本中可用的某些功能。例如,sqlline 的写入 csv 行为(用于 ignite 缓存导出)仅使用单引号打印每个列值,并且记录命令以打印“将所有输出保存到...”行开头。对于较新的版本,我们有这些设置,如!set csvQuoteCharacter '"',!set silent true等。

现在,我们尝试替换旧版本的 sqlline(连同 jline)并启动一个服务器节点并进行了一些基本测试。我们没有看到任何问题。

所以问题是,Ignite 真的需要使用旧版本(并且我们在测试中没有遇到的问题)还是可以使用新版本?这只是计划更新的问题。如果是前者,请告诉我什么可能会被破坏,如果是后者,你们知道这次升级的任何计划吗?

谢谢