将php-predis连接到AWS ElasticCache

时间:2018-07-19 22:05:54

标签: php php-7.1 predis

我们在弄清楚如何通过predis 1.1.1连接到以HIPAA兼容模式运行的AWS ElasticCache Redis集群时遇到了麻烦。这意味着:

  • 集群和复制
  • TLSed
  • 需要身份验证

Predis应该能够完成所有这些操作,但是我们缺少了一些东西。

$connect = "tls://aws-ec-host:9200";
$options = [
  'cluster'    => 'redis',
  'parameters' => [
    'password' => 'secrets',
    'ssl'      => [
      'verify_peer' => 'true'
    ]
  ]
];
$red_client = new Predis\Client($connection, $options);

使用此配置,我们在处理已移动项目时遇到了异常。好的,因为它可以通过TLS连接并进行身份验证。不好,因为Redis告诉我们要询问另一个节点,而Predis(或者可能是我们的代码)没有处理这种情况。

当我们调整$connect字符串时,错误会改变。

$connect = [ "tls://aws-ec-host:9200" ];

predis文档说,连接到redis-cluster时,您需要设置一个连接数组,并使用cluster => redis选项。但是,当我们执行此操作时,它会炸裂创建客户。具体来说...

  

不能将'CLUSTER'与redis-cluster一起使用

该文档似乎已关闭。但是predis客户端似乎也应该从它应该做的聚合中显示出MOVED项目。是我们必须处理的这种预期行为,还是这里缺少一些配置?

0 个答案:

没有答案