浅谈thinkPHP中利用缓存处理高并发的思路
来源:互联网 发布:python 库安装过程 编辑:程序博客网 时间:2024/05/22 14:53
此内容如有问题,请多多指教
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 0
- 浅谈thinkPHP中利用缓存处理高并发的思路
- 关于高并发的处理思路
- 高并发处理中缓存、降级、限流技术
- Thinkphp文件锁处理高并发
- 应对Memcached缓存失效,导致高并发查询DB的几种思路
- 应对Memcached缓存失效,导致高并发查询DB的几种思路
- 应对Memcached缓存失效,导致高并发查询DB的几种思路
- 应对Memcached缓存失效,导致高并发查询DB的几种思路
- 应对 Memcached 缓存失效,导致高并发查询 DB 的几种思路
- 应对 Memcached 缓存失效,导致高并发查询 DB 的几种思路
- 缓存失效,导致高并发穿透DB的几种解决思路
- 应对Memcached缓存失效,导致高并发查询DB的几种思路
- 高并发的处理
- 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享
- 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享
- 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享
- java高并发的解决思路
- 浅谈js中多并发的一些处理方法
- 复合类型的声明
- 天猫某个商品秒杀js精简
- MySQL学习之路_创建、使用库相关
- ubuntu 14.04 64位安装kinect V1驱动
- reinforcement learing for visual object detection - 阅读笔记
- 浅谈thinkPHP中利用缓存处理高并发的思路
- 关于Laravel数据库迁移的理解
- md5加密使用
- [Lintcode]Reverse Linked List II 翻转链表 II
- javascript中使用带有默认参数的自定义构造函数
- Android开发入门记录1——layout
- 打开桌面文件
- MapReduce Shuffle原理 与 Spark Shuffle原理
- iOS开发——蒙版(引导介绍遮罩)工具类