来我司(纷享销客)做 架构以及Redis方面的技术交流
在讨论到是否引入sharding中间件的时候,
他的观点是不一定非得要用 要看规模
而且中间件也需要一套集群做支撑
最可怕的是 因为全部都是通过这个sharding中间件进行写入
如果这个中间件挂掉的话 那后果会很严重的
他们那边现在访问的量级
介于中型网站和微博访问量之间
两手准备 一边Redis集群 另外一个MySQL库
如果Redis挂了 就用MySQL库抗
这时就有人提疑问了 "你用MySQL坑的住吗?"
熊猫TV的解决方案是将业务做细粒度的拆分
然后给MySQL库添加从库做分流
防止被击穿
他建议Redis还是用单进程单线程的版本 不推荐多进程的非官方改良版本
容易出现意想不到的问题
CPU有16核, 可以部署14个Redis库 剩下2个核心给操作系统 网络 和其他
单机多实例
sorry 不推荐"多线程"的非官方改良版本
我们那边的服务器现在用的是WinServer+hyperV
然后再在上面是CentOS 在往上部署Redis 或者 其他应用
熊猫的架构师建议还是直接用物理机比较好
虚拟机容易出现资源抢占的情况
熊猫的架构在介绍Redis不建议使用多线程版本的时候提到了
多线程存在锁竞争的问题 内耗降低性能
一台物理机 部署14个Redis实例
比如16核CPU Redis 单进程单线程
他还谈到了memcache跟Redis的比较
Redis因为是主从结构, 只要往主节点里面写就OK了 不用理会从节点
而memcache如果有5个节点, 那么就要写5个地方,
最可怕的是 如果前4个写成功了, 最后一个写失败了
你该怎么办?
所以memcache也需要中心啊,做两级缓存吧,memcache local 与 memcache remote