ThinkPHP其实并不支持分布式缓存功能,这可以从官方提供的CacheMemcache.class.php文件中看到:

if(empty($options)) {

$options = array

(

'host' => '127.0.0.1',

'port' => 11211,

'timeout' => false,

'persistent' => false

);

}

$func = $options['persistent'] ? 'pconnect' : 'connect';

$this->expire = isset($options['expire'])?$options['expire']:C('DATA_CACHE_TIME');

$this->handler = new Memcache;

$this->connected = $options['timeout'] === false ?

$this->handler->$func($options['host'], $options['port']) :

$this->handler->$func($options['host'], $options['port'], $options['timeout']);

不过不要紧,稍微修改下就行了,即

if(empty($options)) {

$options = array

(

'timeout' => false,

'persistent' => false,

'servers'=>array(

array('ip'=>'127.0.0.1','port'=>11211),

array('ip'=>'127.0.0.1','port'=>11212),

array('ip'=>'202.116.32.4','port'=>11211),

),

);

}

//分布式处理函数

$func="addServer";

$this->expire = isset($options['expire'])?$options['expire']:C('DATA_CACHE_TIME');

$this->handler = new Memcache;

if($options['timeout']===false)

{

foreach($options['servers'] as $server)

{

$this->handler->$func($server['ip'],$server['port']);

}

}

闲来无事,于是就在本机上启动了两个MemCache服务器,顺手编写了一段简单的监控代码(隔一段时间自动刷新一次),进行测试。如果发现服务器运行不正常,则使用PhpMailer自动发送一封Email到管理员邮箱。测试结果表明,两台Memcache服务器均工作正常,而另外一台虚假的服务器当然是无法连接到的。

php商城如何解决订单高并发,thinkphp商城如何处理高并发,怎么使用memcache做缓存...相关推荐

  1. 如何处理几十万条并发数据_Swoole 如何处理高并发以及异步 I/O 的实现

    Swoole 介绍 1.swoole提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis, 数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件 ...

  2. php商城如何解决订单高并发,php商城高并发下订单模拟

    语法:LOCK TABLE 表名1  READ|WRITE, 表名2 READ|WRTIE..... 解锁:UNLOCK TABLES; read:读锁(共享锁):如果以这种方式锁定表,那么在锁定的过 ...

  3. 如何处理高并发写入mysql_如何处理高并发情况下的DB插入

    转载以便以后学习使用,谢谢! 插入数据库,在大家开发过程中是很经常的事情,假设我们有这么一个需求: 1.  我们需要接收一个外部的订单,而这个订单号是不允许重复的 2.  数据库对外部订单号没有做唯一 ...

  4. .netcore大型商城系统源码_前后端完全分离_高并发支持_八大数据库

    OctShop是一个底层用C#,.net core 6.0编写的大型专业级的,B2B2C+O2O一体化的商城系统,并免费提供商城所有系统源码. API接口和系统SDK多语言支持,也可根据客户需求定制相 ...

  5. java 多用户B2B2C商城系统架构之第四篇:构建高并发高可用的电商平台架构实践

    如果需要商城系统,请联系下方微信 一.设计理念 注:这里只讲概念,尽量不讲技术!但是会推荐一些.本博客虽然是基于java语言,但是适用于任何其他大型架构系统. 1.空间换时间 1)多级缓存.静态化 关 ...

  6. 每秒上千订单场景下的分布式锁高并发优化实践!

    本文授权转自石杉的架构笔记 背景引入 首先,我们一起来看看这个问题的背景? 前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题: 假如下单时,用分布式锁 ...

  7. Java架构-每秒上千订单场景下的分布式锁高并发优化实践!

    "上一篇文章我们聊了聊Redisson这个开源框架对Redis分布式锁的实现原理,如果有不了解的兄弟可以看一下:<拜托,面试请不要再问我Redis分布式锁实现原理>. 今天就给大 ...

  8. python盘点订单_django解决订单并发问题【推荐】

    并发处理 在多个用户同时发起对同一个商品的下单请求时,先查询商品库存,再修改商品库存,会出现资源竞争问题,导致库存的最终结果出现异常. 解决办法: 悲观锁 当查询某条记录时,即让数据库为该记录加锁,锁 ...

  9. 基于Django的乐观锁与悲观锁解决订单并发问题的一点浅见

    订单并发这个问题我想大家都是有一定认识的,这里我说一下我的一些浅见,我会尽可能的让大家了解如何解决这类问题. 在解释如何解决订单并发问题之前,需要先了解一下什么是数据库的事务.(我用的是mysql数据 ...

  10. 安排,谷粒商城java分布式开发基础篇高级篇与高可用集群架构篇2020

    来源: 来自网络,如侵权请告知博主删除????. 仅学习使用,请勿用于其他- 最近有小伙伴管我要分布式这类的项目,还有一些要商城的,还有要springboot,springcloud,k8s等,几乎涵 ...

最新文章

  1. 单片微型计算机系统应用和开发特点,单片微机原理及应用 徐春辉 电子工业出版社习题答案.doc...
  2. 自动驾驶寒冬与否,关键看“芯”
  3. TP5.0 PHPExcel 数据表格导出导入(引)
  4. matlab等距线扫描多边形程序实现_常用的3D扫描仪都有哪些类型?
  5. java cygwin,cygwin和java
  6. 3d标注_告别繁琐,浩辰3D「文本特征」让设计更智慧!
  7. 我行贿了 I Paid A Bribe! --印度IPAB中国官方网站 - 民间反腐网站“我行贿了”网址大盘点...
  8. python 中 enumerate() 函数使用
  9. Python数据结构与算法(2.3)——链表
  10. 软件类配置(三)【ubuntu16.04安装微软的AirSim自动驾驶仿真平台,并初步使用仿真。】
  11. 系统架构师学习笔记_第十一章(下)_连载
  12. 从零开始学数据分析之——《微积分》第一章 函数与极限
  13. 中标麒麟使用centos源_中标麒麟操作系统使用笔记
  14. ATTiny85 Arduino开发环境搭建及使用
  15. 通过iis启动服务,会产生C:/inetpub/logs/logsFile产生大量的日志,定期清理
  16. 【蓝桥杯考前一天总结PYthon终结篇】
  17. qq公众平台出错了609_【萌威分享】无本博客公众号矩阵2.0,接单平台,接广告,卖产品,收费qq群,变现站...
  18. 进制之间的转换(计算机系统基础)
  19. html页面酒店日历插件,基于vue2.x的酒店日历选择插件
  20. 计算机自动更新的作用,电脑自动更新系统的好处和坏处有哪些?

热门文章

  1. 现金支票打印模板excel_Excel的正确使用技巧-Excel的提速大法
  2. 获取棋盘格与标准模板在扫描仪上不同位置图片
  3. 2019最新猎豹网校JAVA语言数据结构与算法教程(Java语言 )
  4. t450加固态硬盘教程_Thinkpad T450 超级笔记本 开箱更换SSD和内存
  5. 织梦采集_dede采集_dede自动采集
  6. 32位java jre_jre-7u4-windows-i586.exe|java 1.7.0(Java TM 7)JRE7 32位_最火软件站
  7. 解决Windows无法加载中文(中国)-王码五笔输入法 86版 键盘的布局的方法
  8. 小Z解读:企业证书利用itms-services协议分发应用在蜂窝网络下的限制
  9. dnf脚本是php,dnf脚本和辅助惩罚定制
  10. 基于java的试题库管理系统(java CS窗体版)