解决办法
- //在数据库取数据
- 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的数据,就不需要到数据库去查询这个不存在的数据了,在海量数据和海量访问的时候,这样处理 的效率很高呢