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だけでも出来るのか調査してもわからなかった。)