node.js - 如何连接部署在谷歌云上的redis?

标签 node.js google-app-engine redis redis-sentinel

案例基础: 在谷歌云中部署了一个 redis 实例(单实例)。使用基于 NodeJS 的服务器和 redis-sentinel 库连接到 Node 。原因是谷歌云上基于哨兵的 Node 管理。

我可以通过仪表板/控制台的 SSH 登录登录到 redis 实例。使用redis-cli连接到本地运行的redis服务,可以创建/编辑各种数据集。

问题:当我尝试通过本地主机或部署在同一项目域中的任何其他计算实例访问它时。我正在使用公共(public) IP 和端口 26379/6379 进行连接,但连接被拒绝。

可能的原因:

  • 网络访问政策。

最佳答案

上周努力为自己设置这个,想分享我在这里学到的经验教训。希望这会有所帮助,即使这已经晚了将近一年:)

我使用的是发现的点击部署方案 here (Redis 的 Redis,而不是 Bitnami),它允许奇数个 VM 作为一个集群。

创建部署后,我必须在每个 VM 上执行以下手动步骤,以使其可用作哨兵集群:

  • redis-cli 并运行 CONFIG SET protected-mode noCONFIG REWRITE。这会将 Redis 服务器暴露给外部连接。

  • sudo vi/etc/redis/sentinel.conf 并添加 protected-mode no 这样 sentinel 也可以相互连接

    <
  • sudo/etc/init.d/redis-sentinel start 启动哨兵服务

  • redis-cli -p 26379 并通过运行 sentinel ckquorum master 检查哨兵状态。期望看到“OK X usable Sentinels”,X 是您在集群中拥有的 VM 数量。

剩菜:

  • redis-sentinel 不作为服务运行。需要与 redis-server
  • 一起添加到 /etc/rc?.d
  • /etc/init.d/redis-{server,sentinel} 没有写成适当的 Debian 服务,因此它们在被杀死后不会重生。

总体而言,对此产品非常失望,期待更完整的设置。

关于node.js - 如何连接部署在谷歌云上的redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27940058/

相关文章:

javascript - 为什么这个 Node.js 代码会阻塞?

python - Google App Engine - Python 和从 bigtable 渲染

java - 如何从 GAE java blobstore 上传获取文件名

spring-security - 用户信息放在session的什么地方

amazon-web-services - AWS Elasticache CPU 使用率超过 100%

node.js - 就绪检查失败 : NOAUTH Authentication required

node.js - 初次使用 Sequelize js 时避免出现空表行。

javascript - node.js - 如何 “emitter.setMaxListeners()” ?

node.js - 将 Nuxt JS SSR 应用部署到 Google Cloud App Engine Standard

node.js - 在反向代理模式下使用 NGINX 压缩资源