你可以用redis或者memcache来做db缓存,他们的原理就是像你说的如果存在则从缓存中取,如果不存在则读取数据库并设置缓存。memcache和redis的区别是memcache只支持用内存做缓存,redis支持内存或者文件作为缓存,这要根据你的内存大小做选择。
另外在你请出缓存的时候,前端程序里其实应该或有是否缓存存在的判断,如果刚好用户访问的时候缓存被清除,则应该会读取数据库,不会出现错误。
请采纳。
大家能接受一个php页面消耗多大的内存? - PHP进阶讨论
我的discuz一页占用了2M左右的内存,不过代码被改动了很多,感觉很夸张,一个用户就占了2M,那麼一台2G内存的服务器1000用户在线岂不是不够内存用了?:funk:
php内存不够用,出现Allowed memory size of 8388608 bytes exhausted (tried to allocate 1298358 bytes)
出现该错误的原因:
是因为php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候 会发生上述错误。
解决办法:
1,修改 php.ini
将memory_limit由 8M 改成 16M(或更大),重启apache服务
2,在PHP 文件中 加入 ini_set(”memory_limit”,”100M”);
注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限
3,修改.htaccess 文档(前提是该目录支持.htaccess)
在文档中新增一句:php_value memory_limit 16M(或更大)