从本地计算机访问GCP Memorystore

时间:2018-05-10 21:05:24

标签: google-cloud-platform google-cloud-memorystore

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

4 个答案:

答案 0 :(得分:9)

您可以启动Compute Engine实例并使用端口转发连接到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

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

答案 1 :(得分:4)

我在Google云端上创建了一个虚拟机

library(tidyverse)
data.tab %>%
    group_by(V2) %>%
    mutate(col = paste0("V", 1:n())) %>%
    spread(col, V1, fill = 0) %>%
    ungroup()
## A tibble: 4 x 8
#     V1    V2    V3    V4    V5    V6    V7    V8
#  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1   644    76    78   350    45     0     0     0
#2    37   366    46     0     0     0     0     0
#3    71    28    97    30    55    65   116    30
#4    18   143    99     0     0     0     0     0

然后将其SSH并安装haproxy

gcloud compute instances create redis-forwarder --machine-type=f1-micro

然后更新配置文件

sudo su
apt-get install haproxy

重新启动haproxy

/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

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

答案 2 :(得分:2)

您可以启动Compute Engine实例并使用以下docker映像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

因此,现在您可以使用以下命令从本地计算机访问memorystore:

redis-cli -h <your-haproxy-public-ipaddress> -p 6379

注意:用您的实际haproxy IP地址替换。

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

答案 3 :(得分:0)

Memorystore不允许从本地计算机连接,其他方式(例如从CE,GAE进行连接)非常昂贵,尤其是您的项目很小或处于开发阶段时,我建议您创建一个云函数来执行memorystore,它是无服务器服务,这意味着费用较低执行。我为此写了一个小tool,结果类似于在本地计算机上运行。您可以检查是否对您有帮助。

相关问题