解决办法
- //在数据库取数据
- if (!$row)//如果没有数据
- memcache_set($dbh->memcache, $cacheid, 'x', 0, 300);
- else//有数据
- memcache_set($dbh->memcache, $cacheid, $id, 0, 0);
不知道大家是否有看出这样处理的巧妙,为什么会往memcache里面设置一个’x'的值?还是300秒就过期了?
呵呵 原来是这样的:
如果没有数据,很平常的到数据库去取数据
如果数据存在于数据库,那么就给memcache里面设置数据,并且不过期,
如果数据不存在于数据库,那么就给memcache里面设置一个值为x的数据,但过期时间比较短,这样放置不久将来会也许数据库会存在这个数据,在不过 期的时间里如果再访问这个数据,那么就直接取memcache的数据,就不需要到数据库去查询这个不存在的数据了,在海量数据和海量访问的时候,这样处理 的效率很高呢
本文介绍了一种通过Memcache缓存来提高系统效率的方法。当查询数据不存在时,将特殊标记存入缓存并设置短暂过期时间;若数据存在,则永久缓存。此方法避免了对数据库的重复无效查询。
1014

被折叠的 条评论
为什么被折叠?



