从本地计算机访问GCP Memorystore

Dha*_*val 14 google-cloud-platform google-cloud-memorystore

在开发过程中从本地计算机访问Memorystore的最佳方法是什么?有没有像我可以用来设置隧道的Cloud SQL Proxy?

Chr*_*aan 14

您可以启动计算引擎实例并使用端口转发连接到Redis计算机.

例如,如果您的Redis机器具有内部IP地址10.0.0.3,您将执行以下操作:

gcloud compute instances create redis-forwarder --machine-type=f1-micro
gcloud compute ssh redis-forwarder -- -N -L 6379:10.0.0.3:6379
Run Code Online (Sandbox Code Playgroud)

只要保持ssh隧道打开,就可以连接到localhost:6379

  • 这很棒 。 (2认同)

amo*_*med 6

您可以启动 Compute Engine 实例并使用以下docker image haproxy docker image设置 haproxy,然后 haproxy 会将您的 tcp 请求转发到 memorystore。

例如,我想使用 ip 10.0.0.12 访问 memorystore 实例,因此添加了以下 haproxy 配置:

frontend redis_frontend
   bind *:6379
   mode tcp
   option tcplog
   timeout client  1m
   default_backend redis_backend

backend redis_backend
   mode tcp
   option tcplog
   option log-health-checks
   option redispatch
   log global
   balance roundrobin
   timeout connect 10s
   timeout server 1m
   server redis_server 10.0.0.12:6379 check
Run Code Online (Sandbox Code Playgroud)

所以现在您可以使用以下命令从本地机器访问 memorystore:

redis-cli -h <your-haproxy-public-ipaddress> -p 6379
Run Code Online (Sandbox Code Playgroud)

注意:替换为您实际的 haproxy ip 地址。

希望可以帮助您解决您的问题。


Nat*_*ath 6

我在Google Cloud上创建了一个VM

gcloud compute instances create redis-forwarder --machine-type=f1-micro
Run Code Online (Sandbox Code Playgroud)

然后SSH到它并安装haproxy

sudo su
apt-get install haproxy
Run Code Online (Sandbox Code Playgroud)

然后更新配置文件

/etc/haproxy/haproxy.cfg

....existing file contents
frontend redis_frontend
  bind *:6379
  mode tcp
  option tcplog
  timeout client  1m
  default_backend redis_backend

 backend redis_backend
   mode tcp
   option tcplog
   option log-health-checks
   option redispatch
   log global
   balance roundrobin
   timeout connect 10s
   timeout server 1m
   server redis_server [MEMORYSTORE IP]:6379 check
Run Code Online (Sandbox Code Playgroud)

重新启动haproxy

/etc/init.d/haproxy restart
Run Code Online (Sandbox Code Playgroud)

然后,我可以从本地计算机连接到内存存储以进行开发