登录

php - Redis 主从复制,读写分离的疑问???

问题:
现在想要做Redis集群,也就是主从复制(一主多从),常规也就是“写入操作”往主,“查询操作”往从库。

那么依据惯例,应该是
(1)使用中间件的方式分发读、写操作到对应的Redis节点
(2)在代码里,对读和写的操作指定对应的Redis节点
(例如这种:http://blog.csdn.net/u0129790...)

但是第二种方式似乎较繁琐,想采用第一种方式,但苦于没查到对应的资料,难不成都是采用第二种方式。
想询问下大家,一般是怎么做的呢?

感谢:)

# PHP
黄舟黄舟2146 天前439 次浏览

全部回复(1) 我要回复

  • PHPzhong

    PHPzhong2017-04-11 09:48:18

    泻药,然而并没有相关经验,以下属于强答,仅供参考

    既然要采取写入操作往 主库*1 ,查询操作往 从库*N 的策略。
    写入操作可以直接写死到对应的Redis节点。
    读取操作则需要一个分发的策略,如何从N里面选择出1个。

    中间件方式,通常要求中间件服务器和Redis和PHP都有(延时、带宽)较好的连接。
    然后中间件服务器,无论是纯随机分配,或者根据IP分配,根据IP的Hash值分配,或者其它等等的方式,选择一个(经检验)可用的Redis节点,进行数据的获取(和检验、处理等)和转发。

    个人感觉,通常没必要用中间件,可以参考数据库的主从的思路,通常数据库连接的代码(或者连接配置),我们会分离出来单独作为一个文件,同样的,可以把Redis节点的选择分配也写到一个统一的单独的文件(问题里提到的那个博客里称之为Redis的缓存驱动)里,然后都使用这个,就好了。

    回复
    0
  • 取消回复发送