摘要: <!--done--> 介绍 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。 互相替换:我们封装好了接口,通过指定不同的接口实现类进行算法 阅读全文
posted @ 2018-11-23 13:43 Kris-Q 阅读(104) 评论(0) 推荐(0) 编辑
摘要: <!--done--> sort() 函数用于对数组单元从低到高进行排序。 rsort() 函数用于对数组单元从高到低进行排序。 asort() 函数用于对数组单元从低到高进行排序并保持索引关系。 arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。 ksort() 函数用于对数组单 阅读全文
posted @ 2018-11-23 11:23 Kris-Q 阅读(1640) 评论(0) 推荐(0) 编辑
摘要: <!--done--> ? 1 2 3 4 5 6 7 8 原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式: ①抽象基类:类中定义抽象一些方法,用以在子类中实现 ②继承自抽象基类的子 阅读全文
posted @ 2018-11-23 11:21 Kris-Q 阅读(149) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新 阅读全文
posted @ 2018-11-23 11:18 Kris-Q 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 阅读全文
posted @ 2018-11-23 11:11 Kris-Q 阅读(132) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 对于商品抢购等并发场景下,可能会出现超卖的现象,这时就需要解决并发所带来的这些问题了 在PHP语言中并没有原生的提供并发的解决方案,因此就需要借助其他方式来实现并发控制。 方案一:使用文件锁排它锁 flock函数用于获取文件的锁,这个锁同时只能被一个线程获取到,其它没有获取到 阅读全文
posted @ 2018-11-23 11:09 Kris-Q 阅读(309) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。 重点在于第二个问题 常规写法: 查询 阅读全文
posted @ 2018-11-23 11:06 Kris-Q 阅读(288) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 由于数据库查询的及插入的操作 耗费的实际时间要耗费比redis 要多, 导致 多人查询时库存有,但是实际插入数据库时却超卖 redis 会有效的减少相关的延时,对于并发量相对较少的 可以一用 1 public function buy($goods_id = 0){ 2 if 阅读全文
posted @ 2018-11-23 11:03 Kris-Q 阅读(5482) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 一、使用视图的理由是什么?1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。2.查询性能提高。3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可 阅读全文
posted @ 2018-11-23 11:00 Kris-Q 阅读(410) 评论(0) 推荐(0) 编辑
摘要: <!--done--> 存储过程 什么是存储过程?? 简单来说,存储过程就是为了以后使用而保存的一条或多条SQL语句的集合 . 和我们编程语言中的函数这个概念比较像。 在编程语言中,我们经常要完成某个功能,我们都会将它写成一个函数,然后在需要这个函数的时候调用它就好了。 同样的道理,存储过程也是这样 阅读全文
posted @ 2018-11-23 10:58 Kris-Q 阅读(174) 评论(0) 推荐(0) 编辑