此内容如有问题,请多多指教
Thinkphp默认各类缓存都是以文件缓存的
改的话在配置文件里改
'DATA_CACHE_TYPE' => 'File', // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator
S数据缓存与F快速缓存最大的区别是:
S能设置缓存有效时间,来删除自动缓存数据
而F不能设置只能强制删除
F('data',NULL);S同理一样强制删S('data',NULL)除
查询缓存cache默认是true即开启了缓存的
注意:当向数据库发送不同数据库时,会产生不同的查询缓存文件,
M('admin')->cache()->where()->select();
M('admin')->cache()->where()->select();若像数据库发送相同同数据库时只产生一条查询缓存文件,
M('admin')->cache()->where()->select();
M('admin')->cache()->where()->find();
处理高并发解决方案:
当我们网站访问量大了的时候,解决卡顿问题,
方法1:可以从数据库着手,运用主从式分布式数据库分配用户请求数据库地址,(上了百万级同理),
假如在线用户有10w人平均每一个人1秒钟向数据库发送3条数据库那么就有30万数据发送数据库,
SQL的量可能会非常巨大,所以有必要设置下缓存的队列长度,例如,我们希望SQL解析缓存不超过5000条记录,可以设置:
1. 'DB_SQL_BUILD_LENGTH' => 5000, // SQL缓存的队列长度
2. 然后分配到各个数据中从而减轻了服务器的压力
方法二 从服务器端运用nginx配置服务器,(负载均衡)具体有待完善
方法3假如有100000用户同时在我们p2p平台借款(其中可能会出现一小部分用户卡顿借款失败),为了解决其中出现的的问题,
我们可以设置两个线程:
1. 主线程正常执行所有用户的请求
2. 把所有用户全部放到事务队列处理,副线程只用来—>读事务队列的结果集
提高用户体验
阿里云学生机1年114元限时活动(24岁以下都可以购买)https://promotion.aliyun.com/ntms/act/campus2018.html?userCode=a6violqw阿里云1888元红包:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=a6violqw
优库云是一个致力于分享学习干货、实用工具、优秀博客、面试宝典、互联网资讯技术、新闻观察、热点资讯、京东淘宝好物、优惠活动的平台。不定时推送,关注置顶公众号不错过任何福利!点击链接加入组织https://mp.weixin.qq.com/s/XHMsZaQYK-PkmudA_JXLSA