作为WEB开发者,CACHE对我们来说是再熟悉不过了。但是,你真的有研究如何把它用得更“优雅”吗?下面以较常见的Memcache为例,谈谈对CACHE操作的几种常见封装方法,并推荐一种我认为最佳的实践。如果你有更好的解决方案,请不吝赐教:)
为什么要封装?
$mc = new Memcached(); $mc->addServers('127.0.0.1', 11211); $key = 'test'; $duration = 3600; $value = $mc->get($key); if ($mc->getResultCode() == Memcached::RES_NOTFOUND) { $value = getValueFromDB(); $mc->set($key, $value, $duration); }
第一次使用CACHE的同学,往往会写出上面的代码。简陋且有效,拿来写个Hello World是再合适不过了,但是真正在项目中使用CACHE的时候,还这么写就太low了。没有异常处理和重试机制、不能做负载均衡,大量的重复代码……当你受不了维护之繁琐时,就会想办法来解决这些问题,那就是封装。 Continue reading 浅谈对CACHE操作的封装及最佳实践