Laravel 关于 Redis 集群多环境配置的解决方案讨论咨询

weixin_38062545 2019-09-18 04:02:15
这是项目开发中遇到的一个问题 redis集群各环境差异化 1、线上会有6台机器 2、测试环境只有4台 如何配置或者用什么方式能做到比较高效的进行配置,不会因为需要增加或减少redis集群的机器而 对 database.php 进行文件代码的修改 ps:看了下 symfony 一块,是一个配置项(长串的字符拼接),symfony自己进行解析数据处理的 用的是laravel自带的(PS:是自带的嘛?嗯,这不是重点..)predis配置使用的 相关配置: #.env REDIS_HOST_FIRST=1.2.3.101 #集群ip1 REDIS_HOST_SECOND=1.2.3.102 #集群ip2 REDIS_TIMEOUT=10 #database.php ... 'redis' => [ 'clusters' => [ 'myCluster' => [ [ 'host' => env('REDIS_HOST_FIRST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 7010), 'database' => 0, 'read_timeout' => env('REDIS_TIMEOUT', 5), ], ...// 省略此处重复6遍 ] ] laravel
...全文
100 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38069146 2019-09-18
  • 打赏
  • 举报
回复
临时解决方案吧。。。 #.env REDIS_CLUSTERS=1.2.3.103:6001,6002,6003;1.2.3.104:6001,6002,6003 #database.php $redisClusters = explode(';', env('REDIS_CLUSTERS')); $clusters = []; foreach ($redisClusters as $cluster) { $temp = explode(':', $cluster); $ports = explode(',', $temp[1]); foreach ($ports as $port) { $clusters[] = [ 'host' => $temp[0], 'password' => env('REDIS_PASSWORD', null), 'port' => $port, 'database' => 0, 'read_timeout' => env('REDIS_TIMEOUT', 5), ]; } } ..... 'redis' => [ 'clusters' => [ 'myCluster' => $clusters ] ]

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧