我目前在memcached中有大约650,000项(使用430MB内存),并且数量还在增加。预计平稳之前将超过100万件。目前的命中率是25:1,所以效率非常好。我只想问,单个服务器上的memcached中有100万项太多了?如果没有,多少是太多?memcached中有多少个键太多?
回答
您可以将向上缩放到一个具有48GB的64位服务器,并将其放置到80,000,000个项目中。或者你可以将从中缩放出来,并购买许多4GB服务器,并且每个服务器上最多可容纳2,400,000个物品。当你将它分布到多个服务器上时,Memcached的工作非常好。
@Jim,感谢您的回答,那么2,400,000是memcached可以存储在4GB盒子中的最大数量? – jack 2010-03-19 08:16:06
对不起,这是根据您当前在430MB中的650k项目进行的粗略估算。但是1米的物品远低于这种机器的最大值。您需要考虑高速缓存访问的*卷*增加(CPU或网络是否成为瓶颈?),以及如果memcached计算机出现故障时会发生什么情况。即使单台计算机可以处理缓存和加载,您可能需要两台或更多台计算机来支持应用程序的故障转移。 – 2010-03-19 13:28:04
但是,当您用尽备用内存专门用于memcached时,“太多”实际上是有效的。
数据存储在一个巨大的哈希表中,使查找非常接近O(1)。随着哈希表的增长,碰撞理论上会增加,但哈希表概念的高质量(以及适用于memcached)实现通常包含充足的手段来帮助解决这个问题,只需很少的放缓。
不是哈希表O(log(n))? – user1130176 2014-11-22 10:56:50
@ user1130176没有在一般情况下,没有。来自假定散列表的O(log(n))行为将暗示破坏或误用的实现。您可能正在考虑一些通常用于实现关联数组的其他结构 - 例如某种形式的树。 – 2014-11-23 17:38:40
获得固定时间的唯一方法是某些确定性的,从关键到随机访问索引的一对一功能,对吧,memcached是做什么的?如何在O(1)时间内遍历100M记录?我很想知道这是如何完成的。 – user1130176 2014-11-25 17:43:20
- 1. 有多少个EJB太多?
- 2. JVM中有多少个对象太多?
- 3. 表中有多少个“太多”字段?
- 4. 有多少层太多?
- 5. 有多少查询太多?
- 6. STL有多少太多?
- 7. JSON有多少JSON太多?
- 8. 有多少NSTimers太多?
- 9. mysql-query中有多少where-clause太多?
- 10. MVC中有多少GUI逻辑太多?
- 11. 多少javascript太多
- 12. SQL查询中“in”子句中有多少个值太多?
- 13. 有多少列是太多列?
- 14. SQL Server 2005表有多少列太多?
- 15. 有多少构造函数太多?
- 16. SQL SSIS有多少步骤太多
- 17. 有多少班级太多? Rails STI
- 18. 有多少Ruby线程太多?
- 19. 有多少PHP包含太多?
- 20. 有多少NGinx重定向太多?
- 21. 多少个div标签太多?
- 22. 数据库中有多少个表/ sprocs /函数太多?
- 23. Postgres中有多少个表分区太多?
- 24. 解决方案中有多少个项目太多?
- 25. 多少表开销太多?
- 26. 多少Javascript太多了?
- 27. 多少时间太多?
- 28. 对于一个类,有多少个静态方法太多?
- 29. 在wordpress中缓存多少是太多
- 30. 在应用程序中登录多少,多少钱太多?
您可以添加其他服务器并在其上安装内存缓存并分发它。它的美丽,那么你不必担心这一点。 – DarthVader 2010-03-19 03:24:06
请参阅?如果memcached对于死亡之星等服务器农场来说足够好,那么你已经足够了。 – Xeoncross 2012-10-10 22:00:46