raincious
2014-02-18 12:39:48 +08:00
不是坑。V2EX后台不知道怎么运算的,但是由于这么多功能(比如Block判断等等),占用了很多数据库的运算资源。优化好了(或者干脆去掉)或许能省掉一些。
另外用Redis给我最大的感觉是,原先用MySQL,只跟服务器聊一句然后取出所有数据的习惯改变了。用Redis的时候得蹭在服务器上,跟服务器聊很多句才能把数据取全。(先跟数据库连接,然后取list,然后根据list取hash什么的)。
当然,如果想节省MySQL,可以利用缓存。渲染好页面之后,把页面存在那里,访问的时候读缓存就好了,数据有变更的时候通知程序清理然后重建缓存,产生页面所需的查询只需要一次。
反正我的网站被我优化到大部分页面打开时,如果无需判断权限和用户是否登陆(安全相关的操作)的话,不需要蹭任何数据库,只需要从磁盘里把缓存读出来然后输出就好了。
// 当然,一旦涉及到权限判断,数据库肯定得蹭。但是我限制到每个页面大约10次查询。大部分页面30毫秒内能渲染好。
// 如果不蹭数据库只读缓存的话,5毫秒内几乎能搞定。