问题标签 [google-cloud-memorystore]

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 回答
798 浏览

python - 如何在 Redis 缓存中设置值,使用 Python 由同一列名下的多行组成

我正在为 Redis 服务器使用 Google Cloud 的内存存储。我的目标是存储来自 BigQuery(类似 SQL)的查询结果,并从 Redis 检索结果以供后续使用。该查询返回大约 1000 行,其中包含我尝试使用设置的两列client.set

一旦设置了值和键,当我尝试检索时,它只返回键的最后一个值。我猜这是因为在尝试在循环中设置值时,它会覆盖键的先前值。如何克服存储同一个键的多个值并检索它的问题。

我使用的代码如下:

请让我知道如何打印所有设置的键和值

0 投票
2 回答
611 浏览

google-cloud-platform - 关闭 Google Cloud Memorystore?

这可能是一个愚蠢的问题。我只是好奇。我是 Redis 新手,想尝试一下。但是,我想在试验时打开和关闭实例,因为我想节省成本而不是让实例一直运行。

但我没有看到像计算等其他产品那样的停止按钮。是否有一个原因?

谢谢

0 投票
1 回答
657 浏览

python - 谷歌云数据存储延迟

我在 Cloud Run 上部署了一个 API,每个请求都会导致对 Cloud Datastore 的读取+写入。大量请求是第一个计时器(从 Datastore 读取将返回 null),因此在其前面添加缓存可能没有太大帮助。

在过去的一个月中,调用 Datastore 并获得数据 ( data = client.get(key, eventual=True)) 的平均挂墙时间为 48 毫秒。有效载荷很小(一个字典列表,平均有 10 个元素,每个字典有两个浮点数)。

我不确定我是否应该说延迟很高,但我的 API 有 100 毫秒的预算来完成它需要做的所有事情并返回。如果只是数据获取需要大约 50% 的时间,我正在寻找优化事物的方法。

问题:

  1. 一般来说,对于从 GCP 中按键获取的相当小的有效载荷来说,50 毫秒听起来如何?
  2. 我对 GCP 中的 Memorystore 有什么期望(就延迟而言)?
0 投票
2 回答
736 浏览

google-cloud-platform - 如何在 GCP memorystore redis 实例中安装 redisearch 模块

我需要在 GCP memorystore redis 实例之上安装 RediSearch 模块。

我按照以下步骤操作:

docker run -p 6379:6379 redislabs/redisearch:latest

我将这个 docker 镜像推送到 Kubernetes 集群并暴露了外部 IP。我使用该外部 IP 和 6379 端口作为我的应用程序的配置,但我无法连接到 RediSearch。

代码:

错误 :

任何解决方案表示赞赏。

0 投票
1 回答
529 浏览

google-cloud-platform - Google Cloud Redis - IP 地址更改没有警告

TLDR:我可以就如何在 GPC 上设置 Redis 以用于生产使用一些建议,它只是随机切换我们的 IP 地址,文档中没有任何内容/我不知道如何构建具有这种可能性的稳定解决方案.

背景:

我们已经使用谷歌云几年了,并且在“标准”层上有一个稳定的 Redis Memorystore 实例。

在过去的几天里,我们的网络服务器开始时不时地慢慢崩溃。查了一下,连接celery/Redis的时候有问题,我们发现我们所有的配置文件都有10.0.0.3作为Redis实例,服务器的IP地址是10.0.0.4。这从未改变过,我们的配置在 git 中,所以我们确信它们没有改变。

由于 Celery 不会在连接不良的情况下启动,我们知道在周二我们推送新代码时它是正确的。似乎服务器发生故障并以某种方式向我们发出了 IP 地址更改。作为证据,

我们的图形使用会在特定点奇怪地改变颜色

这与我们的错误日志“[2020-06-16 03:09:21,873: ERROR/MainProcess] Error in timer: ReadOnlyError("You can't write against a read-only slave.",)" 相匹配

我们找到的所有文档都说 IP 地址将保持不变,但鉴于这没有发生,我希望得到一些反馈,说明在这种情况下如何在 GPC 上解决非静态 IP

0 投票
1 回答
551 浏览

redis - 启用 Istio 后 GCP Memorystore Redis 连接被拒绝

我们有一个现有的 GKE 集群(1.16.9-gke.6),其中一些服务与 GCP Memorystore Redis 实例通信。但是,在这些 pod 上启用 Istio(版本 1.16.3)后,我们开始看到 redis 实例的连接被拒绝错误。由于我们刚刚开始使用 Istio,我们允许来自网格内部服务的所有外部流量,使用:

如此一来,所有出站流量都会按照预期和观察到的 Kiali + Istio 代理日志进入 PassthroughCluster。

另外,我可以登录到我的app容器和istio代理容器和netcat成功到redis实例。

我还尝试在我们的 helm 图表模板中为 redis 实例添加一个服务条目:

但是,我继续收到连接被拒绝错误。我们使用 Redisson Java 客户端库不确定这是否重要。

作为一种解决方法,我通过使用global.proxy.includeIPRanges和 set添加我们的 cidr ip 范围来绕过 Istio 代理enableProtocolSniffingForOutbound: false,这目前可以使用,但我真的希望将其配置为 ServiceEntry,因为我最终希望我的流量通过 Egress 网关路由。

在我们的应用程序中使用 ServiceEntry 指定 redis uri/nodeAddresses 的正确格式是什么。这似乎不起作用:redis://gcp-memorystore-redis:6379

感谢任何帮助!

0 投票
1 回答
306 浏览

google-cloud-memorystore - 事件:所有 GCP Memorystore 实例已刷新

昨天我们注意到我们所有的 GCP Memorystore (Redis) 实例都存在连接问题。

在 Web 控制台中,在 下/memorystore/redis/instances,指示器显示“加载”图标,标题文本为“执行维护”。

几分钟后,与实例的连接恢复了,但是所有数据都被刷新/删除了!似乎实例本身进行了某种重启,刷新了所有 RAM。

我们在此事件中丢失了数据,并希望确保将来防止这种情况发生。我们这边是否有任何行为可能引发了这种情况?我们在多个项目中都看到了这一点,因此我们认为这可能是谷歌范围内的事件。但是,我们没有看到任何关于此在线的信息,并且 GCP Memorystore 状态没有报告任何事件/停机时间。

0 投票
1 回答
254 浏览

google-cloud-platform - 在 GCP 上升级 postgresl/redis 数据库而不停机

我正在创建一个与 nodeJS 后端反应的网络应用程序。我将所有这些都托管在 Google Cloud Platform 上。我使用的是 postgresql 数据库和 redis 数据库,因为我对这些数据库的了解很少,所以我使用托管选项(云 SQL 和云内存存储)。

这些不是最便宜的解决方案,但就目前而言,他们会做我想让他们做的事情。

我现在的问题是:我正在使用托管选项。想象一下,我的 Web 应用程序取得了成功并且变得更大,我可能想要自己的托管解决方案(例如计算引擎上的 redis 集群或计算引擎上的 postgresql 集群)。我能否将我的托管数据库迁移到计算引擎解决方案而不会出现停机/数据丢失?

如果事情变得越来越大,我可能会聘请对 postgresql/redis 有更多了解的人,这不是问题,我唯一想知道的是:是否可以从 GCP 托管解决方案升级到计算引擎上的非托管解决方案不会丢失数据和停机?我根本不想丢失数据,一点停机时间应该不是问题。

0 投票
1 回答
48 浏览

gcloud - 如何在 Google Cloud 中创建或查找 SERVICE_PROJECT_ID?

所以我试图通过 VPC 将 Redis Memorystore 实例连接到 Cloud Run,因此我需要从服务项目在共享 VPC 网络上创建 Redis 实例。

我有所有变量的值,除了SERVICE_PROJECT_ID. 那是什么以及如何为自己创建/找到一个?

0 投票
2 回答
554 浏览

google-cloud-platform - 无法使用无服务器 VPC 访问设置 Google Cloud Memorystore redis 实例

我想设置一个 Google Cloud memorystore redis 实例并通过我的 google cloud 功能连接到它。遵循本指南https://thecloudfunction.com/blog/firebase-cloud-functions-and-redis/

据我了解,一般步骤是:

  1. 启用无服务器 VPC 服务并创建一个连接器供我的函数使用。
  2. 启用 redis 并在同一 IP 地址范围内创建 redis 实例。

问题是,如果我先创建连接器(步骤 #1),然后在尝试创建 redis 实例时出现此错误(步骤 #2):

如果我尝试翻转这些步骤,请先创建 redis 实例(步骤 #2),然后创建连接器(步骤 #1),然后在尝试创建连接器时出现此错误:

我认为这是每个第一个错误的一些 IP 范围冲突的问题,但是查看 VPC 连接我在任何地方都没有看到冲突:

在此处输入图像描述

据我了解,这些都不应该与我的 IP 范围冲突10.92.0.0/28,对吧?

这一切都发生在us-central1

想知道是否有人知道如何正确设置 redis 实例 + 连接器并克服这些错误,或者是否有人对在哪里查找此 IP 范围冲突以及如何解决它有任何建议。

谢谢!