Open GoogleCodeExporter opened 9 years ago
我觉得keySet的实现方式可以优化一下: 目前你的memcached的keySet实现,是采用读取memcached中的items,逐 个进行迭代,判断 key找到需要的key列表的方式实现的;这样的话每一个item都需� ��进行遍历,而且限制大小是 50000个。 其实在进行第一遍的item遍历的时候,只需要遍历出1,2个就行� ��,然后判断如果这个item中包 含了我们需要的key,则再进行第二次的50000次查询遍历,这样 避免了对其他items的遍历操 作,因为针对某一种大小的值,一般情况下都是存放在同一�� �item中的。 目前我是采用这种方式,对于大量的keySet操作,速度提高了�� �少~ //第一遍的只查找对应key的item Map cacheDump = client.statsCacheDump(dump, 2); HashMap firstKey = (HashMap)cacheDump.values().iterator ().next(); if(firstKey != null && firstKey.size() > 0 && ((String) firstKey.keySet().iterator().next()).startsWith(cacheName)) { //符合条件的,进行第二次的遍历 cacheDump = client.statsCacheDump(dump, 50000); }
Original issue reported on code.google.com by polar...@gmail.com on 19 Jun 2009 at 1:42
polar...@gmail.com
这个我在仔细看看,不过是否50000个应该可以自己设置
Original comment by cenwen...@gmail.com on 22 Jun 2009 at 10:34
cenwen...@gmail.com
Original issue reported on code.google.com by
polar...@gmail.com
on 19 Jun 2009 at 1:42