关闭

缓存无底洞现象

462人阅读 评论(0) 收藏 举报
分类:
缓存无底洞现象:
facebook工作人员反应,facebook在2010年左右,memcached节点已经达到3000个,他们发现了一个问题:memcached连接频繁,导致效率下降,于是加memcached节点,添加后发现因为连接频繁导致的效率问题依然存在,这就被称为“无底洞现象”。


问题分析:
以用户为例:user-133-age,user-133-name,user-133-height....N个key,当服务器增多,133用户的信息,也被散落到更多的节点,所以,同样是访问个人主页,得到相同的个人信息,节点越多,要连接的节点越多,对于memcached的连接数,并没有随着节点的增多,而减少,问题出现了


事实上:
Nosql与传统的RDBMS并不是水火不容,两者在某些设计上,是可以相互参考的,对于memcacede、redis这种kv存储,key的设计,可以参考Mysql中表/列的设计

例如:user表,有age、name、height列


例子:对应的key,可以用user:133:age = 23, user:133:name='lisi'


问题解决方案:
把某一组key,按其共同前缀来分布:
例如:user:133-age,user-133-height这两个key
在用分布式算法求其节点时,应该以‘user-133'来计算,而是已"user-133-age/name'来计算
这样,两个关于个人信息的key,就落到同一个节点上
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66052次
    • 积分:2578
    • 等级:
    • 排名:第14202名
    • 原创:199篇
    • 转载:11篇
    • 译文:0篇
    • 评论:1条
    最新评论