- 博客(63)
- 收藏
- 关注
转载 PHP 单例模式
原文作者: xingguang原文链接:https://www.tiance.club/post/1062235890.html单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在...
2020-05-05 12:19:59 250
转载 PHP 状态模式
原文作者: xingguang原文链接:https://www.tiance.club/post/1157327802.html1.概述在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if… ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(i...
2020-05-05 12:18:27 315
转载 MongoDB中各种类型的索引
原文作者: xingguang原文链接:https://www.tiance.club/post/579789855.htmlMongoDB 中索引的类型大致包含单键索引、复合索引、多键值索引、地理索引、全文索引、 散列索引等,下面简单介绍各类索引的用法。1、单字段索引这个是最简单最常用的索引类型,比如我们上边的例子,为id建立一个单独的索引就是此种类型。 # 为id field建立索引...
2020-05-05 12:16:45 3996
转载 MongoDB-分片片键
原文作者: xingguang原文链接:https://www.tiance.club/post/1182994018.html1.分片分片是什么?分片就是将数据存储在多个机器上。当数据集超过单台服务器的容量,服务器的内存,磁盘IO都会有问题,即超过单台服务器的性能瓶颈。此时有两种解决方案,垂直扩展和水平扩展(分片)。垂直扩展就是增加CPU,增加容量,但高性能系统的CPU和容量不成比例,这...
2020-05-05 12:15:23 240
转载 MongoDB之分片集群与复制集
原文作者: xingguang原文链接:https://www.tiance.club/post/3134727742.html分片集群1.1、概念分片集群是将数据存储在多台机器上的操作,主要由查询路由mongos、分片、配置服务器组成。●查询路由根据配置服务器上的元数据将请求分发到相应的分片上,本身不存储集群的元数据,只是缓存在内存中。●分片用来存储数据块。数据集根据分片键将集合分割...
2020-05-05 12:14:04 449
转载 vagrant虚拟机共享目录加速
原文作者: xingguang原文链接:https://www.tiance.club/post/1735609695.htmlvagrant一般都是搭配VirtualBox虚拟机的,但是vagrant默认启动VirtualBox虚拟机的目录共享方式是VirtualBox方式,这种方式性能差,如果文件夹里面的文件数量不多的情况下影响还不是很大,如果数量多的话会很慢,网上说的可以通过安装vagr...
2020-05-05 12:12:30 284
转载 mongodb添加账号密码
原文作者: xingguang原文链接:https://www.tiance.club/post/2802551252.html添加账号密码use admindb.createUser({user:"root",pwd:"",roles:["root"]})use testdb.createUser({user:'root',pwd:'root',roles:['readWrite'...
2020-05-05 12:10:21 289
转载 centos7安装mongodb和设置开机自动启动
原文作者: xingguang原文链接:https://www.tiance.club/post/2911353081.html1、安装mongodwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.5.tgztar -zxvf mongodb-linux-x86_64-rhel70-4.2.5.tgz...
2020-05-05 12:08:54 1202
转载 submit text3批量选中指定关键词的所有行
原文作者: xingguang原文链接:https://www.tiance.club/post/1152603659.html如下数据,想选中关键词为:_id: ObjectId(",的所有行db.getCollection("goods").insert([ { _id: ObjectId("5e9d165dad06000091003a57"), name: "哈士奇饼干...
2020-05-05 12:07:29 2065 2
转载 MongoDB基本操作之CRUD
原文作者: xingguang原文链接:https://www.tiance.club/post/1234652124.html创建文档命令有三种:创建单个文档:db.collection.insertOne()创建单个或多个文档:db.collection.insert()创建多个文档:db.collection.insertMany()insertOne示例:db.good...
2020-05-05 12:06:03 343
转载 使用docker容器运行mongodb
原文作者: xingguang原文链接:https://www.tiance.club/post/2627105888.html使用docker容器运行mongodb1、下载Mongodb的官方docker镜像docker pull mongo:latest2、启动一个Mongodb服务器容器docker run --name mongodb -v /mongodb/data:/da...
2020-05-05 12:04:38 527
转载 PHP 工厂模式
原文作者: xingguang原文链接:https://www.tiance.club/post/2588474815.html一、什么是工厂模式?一个类通过本身的静态方法来,实例化一个类并返回一个实例对象;二、工厂模式特点?类命名特点:nameFactory eg: class mysqlFactory{} 【这是为了规范,当然也去起其他任意名字】静态方法名称:static p...
2020-05-05 12:03:22 104
转载 PHP 建造者模式
原文作者: xingguang原文链接:https://www.tiance.club/post/1575233550.html建造者模式和抽象工厂模式很像,总体上,建造者模式仅仅只比抽象工厂模式多了一个“导演类”的角色。与抽象工厂模式相比,建造者模式一般用来创建更为复杂的对象,因为对象的创建过程更为复杂,因此将对象的创建过程独立出来组成一个新的类 —— 导演类。也就是说,抽像工厂模式是将对象...
2020-05-05 12:01:58 176
转载 PHP abstract 抽象类定义与用法示例
原文作者: xingguang原文链接:https://www.tiance.club/post/137974761.htmlPHP抽象类应用要点:1.定义一些方法,子类必须完全实现这个抽象中所有的方法2.不能从抽象类创建对象,它的意义在于被扩展3.抽象类通常具有抽象方法,方法中没有大括号PHP抽象类应用重点:1.抽象方法不必实现具体的功能,由子类来完成2.在子类实现抽象类的方法时...
2020-05-05 12:00:27 262
转载 PHP 注册树模式
原文作者: xingguang原文链接:https://www.tiance.club/post/2975869525.html注册树模式介绍概念:将已经创建好的对象注册到某个容器里,在需要使用的时候直接从容器获取即可。优势:解决全局共享和交换对象,将对象注册到全局的树上任何地方直接去访问。具体注册树和被注册类代码示例//注册树class Register{ protect...
2020-05-05 11:58:54 152
转载 PHP 观察者模式
原文作者: xingguang原文链接:https://www.tiance.club/post/960570916.html/** * 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。 * 比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 * 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行...
2020-05-05 11:57:27 113
转载 php定义方法属性类比普通传值的优点
原文作者: xingguang原文链接:https://www.tiance.club/post/2520600556.html普通传值:是指直接将参数从一个方法传到另一个方法,最简单暴力的方式。方法属性类:将需要传递的所有值以方法属性类的方式定义出来,需要用时直接取出即可。两者的代码实现方式1、普通传值方式public function testDetail(){ $this...
2020-05-05 11:55:28 123
转载 php 接口类与抽象类的实际作用
原文作者: xingguang原文链接:https://www.tiance.club/post/4065656781.html实际作用总结:1、定义规范,方便大型项目多人开发。当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的...
2020-05-05 11:54:00 118
转载 php中的implements 使用详解
原文作者: xingguang原文链接:https://www.tiance.club/post/3630165851.htmlphp类中接口的应用关键字是interface、implements了,接口是一种成员属性全部为抽象或常量的特殊抽象类,implements主要是对类名,类所拥有的方法,以及所传参数起约束和规范做用,有点像 abstract 抽象类。类中接口的应用1.关键字:in...
2020-05-05 11:52:31 559
转载 swoole两种运行模式BASE和PROCESS的区别
原文作者: xingguang原文链接:https://www.tiance.club/post/570064033.htmlServer的两种运行模式介绍单线程模式(SWOOLE_BASE)这种模式就是传统的异步非阻塞Server。与Nginx和Node.js等程序是完全一致的。在时间循环中直接回调PHP的函数,而不是dispatch投递任务。如果回调函数中有阻塞操作会导致Server...
2020-05-05 11:51:28 925
转载 Swoole 如何处理高并发以及异步 I/O 的实现
原文作者: xingguang原文链接:https://www.tiance.club/post/3001131064.htmlSwoole 介绍1.swoole提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis, 数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole还内置了Http/WebSock...
2020-05-05 11:48:58 806
转载 RabbitMq常用命令
原文作者: xingguang原文链接:https://www.tiance.club/post/77993866.html一、消息对列常用命令1、启插件rabbitmq-plugins enable rabbitmq_management 2、移除服务rabbitmq-service remove 3、安装服务rabbitmq-service install 4、重启服务...
2020-05-05 11:46:55 260
转载 rabbitmq management新建账号
原文作者: xingguang原文链接:https://www.tiance.club/post/545059273.htmlrabbitmqctl add_user test test rabbitmqctl set_user_tags test administrator rabbitmqctl set_permissions -p / test ".*" ".*" ".*" 原...
2020-05-05 11:37:58 324
转载 composer切换国内源
原文作者: xingguang原文链接:https://www.tiance.club/post/186457038.html调用方式以阿里云为例,全局模式(推荐):$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/单独项目使用:$ composer config repo...
2020-05-05 11:36:11 361
转载 linux安装php拓展大全
原文作者: xingguang原文链接:https://www.tiance.club/post/784803616.htmlcentos7安装php拓展大全 有一个小想法,整理一篇linux下安装php拓展大全文章,方便自己或其它人开箱即用,目前就自己遇到哪些需要安装的拓展安装后就顺便更新到这篇博客文章。1、Yaconfgit clone https:...
2020-05-05 11:34:35 296
转载 AOP的定义和原理
原文作者: xingguang原文链接:https://www.tiance.club/post/1167956631.html一、本课目标理解Spring AOP的原理掌握Spring AOP的七个术语二、面向切面编程一、本课目标理解Spring AOP的原理掌握Spring AOP的七个术语二、面向切面编程(AOP)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下...
2020-05-05 11:33:02 229
转载 悲观锁、乐观锁的区别及使用场景
原文作者: xingguang原文链接:https://www.tiance.club/post/1011394230.html悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观, 每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java ...
2020-05-05 11:30:07 559
转载 常用的几个vagrant命令
原文作者: xingguang原文链接:https://www.tiance.club/post/2828478489.html$ vagrant init # 初始化$ vagrant up # 启动虚拟机$ vagrant halt # 关闭虚拟机$ vagrant reload # 重启虚拟机$ vagrant ssh # S...
2020-05-05 11:28:39 112
转载 Elasticsearch的功能、适用场景以及特点介绍
原文作者: xingguang原文链接:https://www.tiance.club/post/3482167954.html学习了什么是Elasticsearch之后,针对工程而言,我们更加关心的是Elasticsearch它能干什么?能在什么地方发挥作用?跟其它类似的东西相比它不同的地方在哪里?归纳起来就是Elasticsearch在什么场景下,相比于其他类似的技术而言,它更适合做什么...
2020-05-05 11:26:53 527
转载 go-grpc调试工具grpcui
原文作者: xingguang原文链接:https://www.tiance.club/post/2929107307.html写Grpc服务端接口的时候有个麻烦的地方就是如何调试的问题,不像http接口直接用Postman进行接口调试,可以借助第三方调试工具grpcui来实现类似的调试效果github源码地址:https://github.com/fullstorydev/grpcui...
2020-05-05 11:25:23 1647
转载 Elasticsearch之curl操作PUT和POST区别
原文作者: xingguang原文链接:https://www.tiance.club/post/1704684589.html1.更新:PUT会将新的json值完全替换掉旧的;而POST方式只会更新相同字段的值,其他数据不会改变,新提交的字段若不存在则增加。2.PUT和DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如用PUT修改一篇文章,然后在做同样的操作,每次操...
2020-05-05 11:23:06 526
转载 为什么一定要用MQ中间件?
原文作者: xingguang原文链接:https://www.tiance.club/post/1626959203.html这篇文章我们会把消息中间件这块高频的面试问题来给大家说一下,也会涵盖一些 MQ 中间件常见的技术问题。假如说面试官看你简历里写了 MQ 中间件的使用经验,很可能会有如下的问题:你们公司生产环境用的是什么消息中间件?为什么要在系统架构中引入消息中间件?引入消息中...
2020-05-05 11:20:23 231
转载 yii2简单实现redis消息队列
原文作者: xingguang原文链接:https://www.tiance.club/post/1297686480.html生产者代码示例public function producer(){ $data=[]; //组装要推送队列的业务逻辑数据 $key='redisKey'; $redis=Yii::$app->redis; $redis->lpush...
2020-05-05 11:17:53 945
转载 Redis实现消息队列
原文作者: xingguang原文链接:https://www.tiance.club/post/4033908611.html队列本身其实是个有序的列表,而Redis是支持list的,可以利用redis的列表(List)来实现简单队列。一般有两种方式:1、LPUSH(头部插入)和RPOP(尾部弹出)2、RPUSH(尾部插入)和LPOP(头部弹出)两种均可,下面示例使用的是:第一种:L...
2020-05-05 11:16:27 166
转载 php之yii2简单分布式redis锁限制和缓存设置
原文作者: xingguang原文链接:https://www.tiance.club/post/2709942805.htmlyii2框架简单加锁锁定本次任务没执行完之前不允许再请求本次方法,注意这只是简单实现能应对几乎所有并发场景。/** * 具体业务逻辑代码 */ public function business(){ $key ='redi...
2020-05-05 11:14:43 1018
转载 TCP和UDP的区别和优缺点
原文作者: xingguang原文链接:https://www.tiance.club/post/3905120281.html1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tc...
2020-05-05 11:13:00 153
转载 TCP粘包,产生的原因以及解决方案
原文作者: xingguang原文链接:https://www.tiance.club/post/144770649.html1、粘包的概念粘包:多个数据包被连续存储于连续的缓存中,在对数据包进行读取时由于无法确定发生方的发送边界,而采用某一估测值大小来进行数据读出,若双方的size不一致时就会使指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的...
2020-05-05 11:10:46 1039
转载 php判断变量是否为正整数
原文作者: xingguang原文链接:https://www.tiance.club/post/934001781.html$data['recharge_price']=str_replace('.00','',$data['recharge_price']); if(preg_match("/^[1-9][0-9]*$/" ,$data['recharge_price'])) {...
2020-05-05 11:08:45 318
转载 php函数trim中文编码问题解决
原文作者: xingguang原文链接:http://www.tiance.club/post/2735926554.html调用代码mb_internal_encoding("UTF-8");$encoding = mb_internal_encoding();$endData=self::mb_rtrim("广州市", "市",$encoding);print_r($endData...
2020-05-05 11:07:17 283
转载 win10设置开机自动启动vagrant虚拟机
原文作者: xingguang原文链接:http://www.tiance.club/post/3932398064.html1、自制bat脚本将下面的命令复制到.bat后缀的文件中,如start_vagrant.batcmd /k "cd /d D: && vagrant up"cmd /k “cd /d (vagrant虚拟机所在目录) && vag...
2020-05-05 11:05:05 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人