はい。。大げさなタイトルですみません。
PHPのSESSION管理でRedis Clusterを指定したい場合の方法です。
環境はこちら。
redis 3.0.5、phpredis、apache 2.2.15
Redis Cluster を指定する
phpで直接指定するにはこんな感じ。
php
ini_set('session.save_handler', 'rediscluster');
ini_set('session.save_path', 'seed[]=192.168.1.100:6379&seed[]=192.168.1.110:6379&seed[]=192.168.1.120:6379&timeout=3&read_timeout=3&failover=error');
apacheのextensionに書くにはこんな感じ。
redis.ini
extension = redis.so
session.save_handler = rediscluster
session.save_path = 'seed[]=192.168.1.100:6379&seed[]=192.168.1.110:6379&seed[]=192.168.1.120:6379&timeout=3&read_timeout=3&failover=error'
(おまけ) Redis を指定する
php
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://host1:6379, tcp://host2:6379?timeout=2.5, tcp://host3:6379');
redis.ini
extension = redis.so
session.save_handler = redis
session.save_path = "tcp://host1:6379, tcp://host2:6379?timeout=2.5, tcp://host3:6379"
ちなみにですが、Redis ClusterにRedisとしてPHP Sessionを指定すると下記のようにエラーが出ます。
[06-Apr-2016 16:48:04 Asia/Tokyo] PHP Warning: Unknown: Failed to write session data (redis). Please verify that the current setting of session.save_path is correct (tcp://127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
参考URL
https://github.com/phpredis/phpredis/issues/620
https://github.com/phpredis/phpredis/issues/664