Memcached缓存无底洞现象

Facebook的工作人员反应2010年已达到3000memcached节点,储存数千G的缓存。

他们发现一个问题--memcached的连接效率下降了,于是添加,memcached节点,添加完之后,并没有好转。

称为“无底洞”现象




以会员信息为例:

‘User-133-age’  22

‘user-133-height’ 170

‘user-89-age’ 60

‘user-89-height’ 182

当服务器增多,133号用户的信息也被散落在更多的服务器,所以,同样是访问个人主页,得到的相同的个人信息,节点越多,要连接的节点也越多,对于memcached的连接数,并没有随着节点的增多而降低,问题出现。

 

事实上:

NoSQL和传统的RDBMS,并不是水火不容,两者在某些设计上,是可以相互参考的。对于memcached,redis,这种kv存储,key的设计,可以参考Mysql中表与列的设计。

比如:user表下有age,name,身高列,对应的key,可以用user:133:age=23,user:133:name=’lisi’,user:133:height=168;

 

问题的解决方案


把某一组key,按其共同前缀来分布:

在用分布式算法求其节点时,应该以’user-133’来计算,而不是以user-133-age/name/height来计算,这样3个关于个人信息的key,都落在同一个节点,访问个人主页时,只需连接一个节点。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值