请教几个关于memcached的问题

chouto 2009-04-08 02:00:00
现在分布式缓存方面算是memcached最出名了,为了改善现有系统的性能最近也在研究这个,有几个问题不太理解:

1、memcached可以通过一个服务器列表ServerList指定缓存服务器,但缓存的服务器和缓存的数量都是随机的,比如:有3个缓存服务器,向客服端库ClientLib里set 10个缓存的时候,这10个缓存不是平均分配到这3个服务器,有可能一台只有1个,一台一个都没分到,另一台分了9个,这样的话压力有可能就全到一台服务器上去了。

2、如果缓存一个很大的列表时,这时分布式缓存基本上用不上,比如100万条记录(举例),只会缓存在一个服务器,而不会将这100万条数据分成3份分别缓存到3个服务器

3、在后台更新某一条记录的时候 ,如果将缓存里对应的数据也更新了,批量删除如何处理?

4、在客户端查询的时候,如果数据不是缓存在应用程序部署服务器的话,是不是先从别的缓存服务器将数据全部拷贝到应用程序服务器呢?
如:有3个服务器 A,B,C ,其中程序部署在A上,设置缓存的时候有可能数据随机缓存到C服务器上,那么客户端请求数据的时候 是不是先从C服务器将数据全部拉到A服务器呢,这样对性能会不会造成很大的影响呢?


以上仅为个人的理解,请高手赐教!
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chouto 2009-04-09
  • 打赏
  • 举报
回复
怎么都没人?
chouto 2009-04-08
  • 打赏
  • 举报
回复
感谢igelf的关注

期待其他高手也发表下观点
igelf 2009-04-08
  • 打赏
  • 举报
回复
1.我没测试过.是不是缓存的数量,容易.不够.你多测试下.

3.批量处理不知道.一个个删吧. Remove方法和Store方法.

4.部署的服务器没数据,肯定要从别的缓存服务器数据读过来.

我的观点.

期待高手.
chouto 2009-04-08
  • 打赏
  • 举报
回复
to igelf:
1、这种情况确认存在,我写了demo测试过,每次每台服务器分到的缓存数量都是不确定的;
2、确实有你说的这个问题,所以我不确定是将这些数据分开缓存还是缓存到一台服务器;
3、没有区别,我是问了2个问题,分布式缓存如何批量删除,如何将修改的数据更新到缓存里
4、就是当数据缓存的服务器和程序部署的服务器不是同一台的时候,最终将数据展现给客户的肯定是程序服务器,那么是不是要从缓存服务器将数据读过来呢? 不知道我说清楚了没有。

我用的是Memcached.ClientLibrary,应该就是你所说的。
igelf 2009-04-08
  • 打赏
  • 举报
回复
1. 这种情况不会出现吧.会平均分配的..

2. 程序设计的问题,你不会分成3份再缓存吗.还有3份分别缓存到3个服务器,取数据要取三次,然后整合,麻烦不?

3. 删除跟更新有什么区别?

4. 不明白.

你是用MemcachedClient的吗.

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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