`
yuanlanjun
  • 浏览: 1187340 次
文章分类
社区版块
存档分类
最新评论

memcache和数据库的使用技巧

 
阅读更多
1、加速无数据的访问速度
毋庸置疑取数据先去取下memcache里的数据,如果没有再去数据库取数据
但这样如果我取100次都是没有的那么我得去数据库去取100次 如果还是重复的。。。那么效率就不高了

解决办法

  1. //在数据库取数据
  2. <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> if<wbr></wbr>(!$row)//如果没有数据
  3. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> memcache_set($dbh->memcache, $cacheid, 'x', 0, 300);
  4. <wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> else//有数据
  5. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> memcache_set($dbh->memcache, $cacheid, $id, 0, 0);

不知道大家是否有看出这样处理的巧妙,为什么会往memcache里面设置一个’x'的值?还是300秒就过期了?
呵呵 原来是这样的:
如果没有数据,很平常的到数据库去取数据
  如果数据存在于数据库,那么就给memcache里面设置数据,并且不过期,
  如果数据不存在于数据库,那么就给memcache里面设置一个值为x的数据,但过期时间比较短,这样放置不久将来会也许数据库会存在这个数据,在不过期的时间里如果再访问这个数据,那么就直接取memcache的数据,就不需要到数据库去查询这个不存在的数据了,在海量数据和海量访问的时候,这样处理的效率很高呢

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics