Rails编写的连接方法到ElastiCache for Redis的集群模式(加密)

首先

在AWS上创建Redis(集群模式且加密)时,连接被停止且没有任何错误日志。
因此,我们需要注意什么。

确认服务器内部连接

首先输入连接命令。
作为注意事项,
-c 启用集群模式
–tls 启用加密传输
如果没有这些选项,连接将无休止地等待,请注意。

$ redis-cli -h [エンドポイント] -p [ポート番号] -c --tls

然而,我本身安装的redis-cli版本为4.0.10,但无法使用redis-cli选项–tls(在这里遇到了问题)。

Unrecognized option or bad number of args for: '--tls'

所以要安装版本6

$ sudo amazon-linux-extras install redis6

确认连接并完成

# キー"mykey"に値"Hello, Redis!"をセットする
xxx.x.x.x:6379> SET my_key "Hello, Redis!"
# キー"mykey"の値を取得する
xxx.x.x.x:6379> GET my_key
"Hello, Redis!"

应用程序(Rails)连接确认

用宝石库

gem 'redis-objects', '>= 2.0.0.beta' # gem 'redis'でもok
gem 'redis-clustering' # クラスター接続用

rediss不是拼写错误,而是在使用加密认证(SSL)时的写法。

Redis::Cluster.new(nodes: ["rediss://#{ENV["REDIS_URI"]}:#{ENV["REDIS_PORT"]}"])

总结

    • 暗号化してクラスターを作成した場合は結構オプションやredis-cliのコマンドが通常と異なるので気をつけないといけない(公式にも接続方法載ってる)

 

    Railsによる接続もgem redis-clusteringが必要になる(gem redis-objectsだけでも出来るのか調査してもわからなかった。)

 

bannerAds