摘要:
日常编程中,对于一些有一定并发量或数据量较高的数据库操作,我们都会在前端加一层缓存层,并设置失效时间,现在一般是mongoDB或memcached, 阅读全文
摘要:
一般来说,一个项目中总是会有一些较难处理的业务,比如业务复杂花样繁多的搜索,使用搜索系统如sphinx,lucence等来处理的话,数据源的若是变化过快(如顶、踩、浏览数之类),则首先推数据的频率就较难衡量,另外无法精确搜索或排序。所以一般情况下的做法是通过DB进行搜索,并且除了尽量将业务分解到程序层面外,还会在DB前加一层cache。但是这样做也有不少已知的弊端:
1、实际上很多业务无法放到普通的PHP中处理,如一些较复杂的排序、筛选,通过普通的PHP来实现的话效率还不如MYSQL。
2、cache的命中率也不好保证,特别是对一些使用关键词进行查询的业务,关键词变化太多。 阅读全文