自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

转载 策略模式解决多重if-else

策略模式解决多重if-else加瓦技术爱好者2020-06-21 18:04:13写在前面很多人可能在公司就是做普通的CRUD的业务,对于设计模式,即使学了好像也用处不大,顶多就在面试的时候能说上几种常见的单例模式,工厂模式。而在实际开发中,设计模式似乎很难用起来。在现在的环境下,程序员的竞争已经非常激烈了,要体现出自身的价值,最直接的体现当然是差异化。这无需多说,我认为在实际开发中能运用设计模式,是很能体现差异化的。设计模式是一些前人总结的较好的方法,使程序能有更好的扩展性,可读性,维护.

2020-08-10 10:05:54 519

转载 java类为什么要实现Serializable接口

前两天接触到VO,DTO,entity这些概念,发现别人的代码中会有 implements serializable这个东西,之前并没有见过这种写法,就去了解了一下原因 1 2 3 4 5 importjava.io.Serializable; publicclassAdminimplementsSerializable { }   Serializable主要作用将类的实例...

2020-06-08 18:08:48 531

转载 Yaconf – 一个高性能的配置管理扩展

这个项目其实不是我新的idea, 这个是我在来微博以后, 第一个优化项目中顺手做的一个小工具, 本身叫做Weibo_Conf. 但是因为Weibo_Conf是属于Weibo扩展的, 里面还有一些其他功能是专门为Weibo定制的. 所以不适合直接开源.随着PHP7的发布, 新增了很多持久化类型的支持比如IS_IMMUTABLE_ARRAY, 于是我就在PHP7下重新开发了Yaconf, 开源出来...

2019-09-23 09:37:50 316

转载 PHP开发知识必备-Nginx与PHP如何交互

普及Nginx与Php-fpm相关知识点nginx是什么Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。cgi的历史早期的webserver只处理html等静态文件,但是随着技术的发展,出现了像php等动态语言。webserver处理不了了,怎么办呢?那就交给php解释器来处理吧!交给php解释器处理很好,但是,...

2019-07-29 15:04:02 518

转载 PHPExcel导出表格乱码解决

PHPExcel出现乱码的情况主要有两种一、文档属性乱码97-2003格式对中文支持不是很友好,会出现乱码。这个暂没有很好的解决办法!目前可行的方式,就是使用高版本的文档属性,在这里可以使用2007$objWriter=newPHPExcel_Writer_Excel2007($phpexcel);二、内容乱码PHPExcel操作Excel时,时常会出现中文乱码的问题,解决方法...

2019-07-02 17:39:13 3886

转载 数据库优化

大家在面试的时候,是否遭遇过,面试官询问你们是如何进行数据库优化的?那这个问题应该怎么答呢?其实写这个题材的原因是我这几天看到各公众号转的一篇数据库调优的知识(不上链接了),我就稍微翻了几下,上面动不动就来说要对数据库进行水平拆分,我就想反问各位读者,你们几个人经历过水平拆分?现在很多文章,实践性实在太差,只能说纯理论分析。这篇文章最早来自知乎的一个提问,我在其基础上完善了一下。...

2019-06-17 15:24:00 127

转载 PHP性能优化利器:生成器 yield理解

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。优点直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下:生成器会对PHP应用的性能有非常大的影响 PHP代码运行时...

2019-06-03 14:44:55 165

转载 PHP+redis实现session共享

1.为了不同的域名能访问到同一个SESSION_ID,这里把domain设置为统一的。修改php.ini,把默认配置修改为sesssion.cookie_domain=".test.com",这里的“.test.com”根据自己的需要自行修改。2.为了使得数据在不同的网站可以访问到,这里选择把session存储在redis中。修改php.ini,把默认配置修改为session.s...

2019-05-30 11:51:03 490

转载 PHP使用RabbitMQ实例

相关博文:CentOS6.9安装RabbitMQ和源码编译安装php的RabbitMQ扩展RabbitMQ入门基础CentOS7源码编译安装nginx+php7.2+mysql5.7并使用systemctl管理RabbitMQ的安装过程,工作流程,和一些基础概念已经在前面的笔记中提到了,今天在本地实现了php连接RabbitMQ,以及消息的生产和消费的过程,首先看下没有生产者和消费者的默认Rab...

2019-05-15 11:17:12 346

转载 centOS7安装Composer

1、进入Composer国内镜像网站文档页查看安装方法:https://docs.phpcomposer.com/00-intro.html2、在centOS系统中进入特定目录执行以下命令:cd /usr/local/composercurl -sS https://getcomposer.org/installer | php注意:该步骤可能遇到以下问题:2.1、ope...

2019-05-13 16:01:47 1263

转载 Redis和MongoDB的区别

项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB。最近又想起为什么用MongoDB,就查阅一下,汇总汇总:之前也用过redis,当时是用来存储一些热数据,量也不大,但是操作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。就Redis和MongoDB来说,大家一般称之为Redis缓存、...

2019-05-13 14:26:48 144

原创 Redis发布订阅机制在PHP中的运用

先启动订阅者sub.php,使其处于阻塞运行等待的状态然后执行发布者pub.php,向订阅了该频道的订阅者推送消息#subscribe客服端 sub.php$redis = new \Redis();$res = $redis->pconnect('192.168.6.33', 6379);$key = 'first';#这里的subscribe是一个独占链接的,你在终端...

2019-05-13 10:28:54 290

转载 面试中经常考到的MySQL题有哪些呢?

1. 如何设计一个高并发的系统① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化② 使用缓存,尽量减少数据库 IO③ 分布式数据库、分布式缓存④ 服务器的负载均衡2. 锁的优化策略① 读写分离② 分段加锁③ 减少锁持有的时间④ 多个线程尽量以相同的顺序去获取资源等等,这些都不是绝对原则,都要根据情况,比如不能将锁的粒度过于细化,不然可...

2019-05-07 17:59:33 372

转载 PHP使用Redis实现分布式锁

一、分布式锁的作用: redis写入时不带锁定功能,为防止多个进程同时进行一个操作,出现意想不到的结果,so...对缓存进行插入更新操作时自定义加锁功能。二、Redis的NX后缀命令  Redis有一系列的命令,其特点是以NX结尾,NX的意思可以理解为 NOT EXISTS(不存在),SETNX命令 (SET IF NOT EXISTS) 可以理解为如果不存在则插入,Red...

2019-05-07 16:57:34 482

转载 MySQL4种外键约束方式总结

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL例,总结一下4种外键约束方式的区别和联系。(主表的主键和从表的外键字段类型必须一样)  这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个...

2019-05-06 16:24:50 391

原创 PHP使用swoole实现多线程爬虫

在swoole中,php可以借助其启动子进程的方式,实现php的多进程:<?php$s_time = time();echo '开始时间:'.date('H:i:s',$s_time).PHP_EOL;//进程数$work_number=6;//$worker=[];//模拟地址$curl=[ 'https://blog.csdn.net/feiwutudo...

2019-05-05 14:32:58 1826 2

转载 Web性能压力测试之Webbench使用详解

Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,J...

2019-04-30 14:31:11 413

转载 PHP利用Mysql锁解决高并发的方法

利用Mysql的锁来解决高并发的问题先看没有利用事务的时候并发的后果创建库存管理表 1 2 3 4 5 CREATE TABLE `storage` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `number` int(11) DEFAULT NULL,...

2019-04-30 14:27:17 427

转载 PHP四种基础算法详解

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的。需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。$arr=array(11,3,56,62,21,66,32,78,3...

2019-04-24 16:29:00 232

转载 MySQL优化相关

本文概要概述为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比如何优化设计数据库时:数据库表、字段的设计,存储引擎 利用好MySQL自身提供的功能,如索引等 横向扩展:MySQL集群、负载均衡、读写分离 SQL语句的优化(收效甚微)字段设计...

2019-04-15 13:56:17 148

转载 PHP的代码优化

1:单引号代替双引号,双引号会去找变量。2:方法定义为static,性能提升4倍。3:$arr['id']的性能是$arr[id]的7倍。4:echo性能快,尽量使用echo $a,$b,$c而非echo $a.$b.$c。5:循环之前确定循环次数,尽量用foreach。6:注销不使用的变量,节省内存。7:尽量不使用魔法函数:__get、__set等。8:require_once()...

2019-04-15 13:48:27 657 1

原创 Centos7编译安装Swoole失败

1.更新gcc至最高版本即可2.安装对应版本的php-devel (比如php7.1 :php71w-devel)

2019-04-10 14:15:16 508

转载 CentOS7 linux下yum安装redis以及使用

一、安装redis1、检查是否有redis yum 源 1 yuminstallredis 2、下载fedora的epel仓库 1 yuminstallepel-release 3、安装redis数据库 1 yuminstallredis 4、安装完...

2019-04-10 11:39:09 158

转载 Apache与Nginx的优缺点比较

无论是 Nginx 还是 Apache 都是 Web 服务器应用,通俗点说我们的网站都是需要 Web 服务器应用来展现给客户的,而服务器是供 Web 服务器应用正常稳定的运行的基础。所以说选择好 Web 服务器应用是会影响到网站性能表现的,甚至会影响到用户的浏览体验。而目前比较主流的 Web 服务器应用也就是 Nginx 和 Apache 了,今天就给大家阐述一下为什么我一直都推荐大家使用 Ngi...

2019-04-08 16:52:41 340

转载 使用Swoole服务搭建简易聊天室

Class Chat{ const HOST = '0.0.0.0';//ip地址 0.0.0.0代表接受所有ip的访问 const PART = 9501;//端口号 private $server = null;//单例存放websocket_server对象 private $connectList = [];//客户端的id集合 public...

2019-04-02 15:00:32 217

转载 nginx配置文件nginx.conf超详细讲解

#nginx进程,一般设置为和cpu核数一样worker_processes 4; #错误日志存放目录error_log /data1/logs/error.log crit;#运行用户,默认即是nginx,可不设置user nginx #进程pid存放位置pid /application/nginx/...

2019-03-25 16:15:51 251

原创 nginx配置域名

/etc/nginx/nginx.confserver { listen 80; server_name www.starrsea.com; root /usr/share/nginx/html/www; include /etc/nginx/default.d/*.conf; lo...

2019-03-25 16:06:50 214

转载 Linux Centos7搭建web环境(LNMP)

CentOS7上安装并配置Nginx、PHP、MySql一、Nginx1、安装nginxyum install nginx2、启动nginxsystemctl start nginx除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx、systemctl restart nginx、systemctl sta...

2019-03-25 15:01:35 210

转载 Redis五种数据类型及应用场景

MySql+Memcached架构的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。  2.Memcached与MySQ...

2019-03-19 11:14:26 160

转载 PHP中的PSR规范

什么是PSR?PSR是PHP Standards Recommendation的简称,这个是php-fig组织制定的一套规范。至今,php-fig已经发布了五个规范:PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲 PSR-1:基本的编码风格 PSR-2:编码风格(更严格) PSR-3:日志记录器接口 PSR-4:自动加载PSR-1...

2019-03-06 16:02:06 213

转载 JavaScript 以POST方式打开新页面

/*        *功能: JS跳转页面,并已POST方式提交数据        *参数: URL 跳转地址 PARAMTERS 参数        */        function ShowReport_Click() {            var parames = new Array();            parames.push({ name: "param1...

2018-12-14 09:19:15 615

转载 idea激活云服务器搭建

 在Centos6.x中搭建idea服务器,最终实现的效果是:只需要在register中输入域名即可:1、首先下载IntelliJIDEALicenseServer(v1.2),你也可以去官网上下载最新版,不过都大同小异(http://blog.lanyus.com/archives/231.html/comment-page-1)链接:http://pan.baidu.co...

2018-11-27 17:46:19 1058

转载 javascript 打印不显示按钮的方法

&lt;style type="text/css"&gt;@media print {  .noprint{display:none;}}&lt;/style&gt; &lt;div align="right" class="noprint"&gt;&lt;input type="button"  value="打印" onclick

2018-11-07 18:07:13 1250

转载 php curl post请求超过1024字节解决方法

基础知识背景:“Expect: 100-continue”的来龙去脉:HTTP/1.1 协议里设计 100 (Continue) HTTP 状态码的的目的是,在客户端发送 Request Message 之前,HTTP/1.1 协议允许客户端先判定服务器是否愿意接受客户端发来的消息主体(基于 Request Headers)。即, Client 和 Server 在 Post (较大)数据之...

2018-10-08 10:52:47 2323 1

原创 Linux安装编译安装hiredis,使得Swoole支持异步Redis客户端

编译安装hiredis使用Redis客户端,需要安装hiredis库。下载hiredis源码后,执行make -jsudo make installsudo ldconfighiredis下载地址:https://github.com/redis/hiredis/releases启用异步Redis客户端编译swoole时,在configure指令中加入--enable-a...

2018-08-08 11:02:05 1195

原创 Linux编译安装swoole

下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装cd swoolephpize./configure --with-php-config=/www/server/php/70/bin/php-configmake sudo make install编译成功后,会在扩展文件夹生成swoole.so文件在php.ini加入extension=swoole.so...

2018-08-08 10:32:54 464

转载 PHP操作redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);redis版本是Redis 2.6.12 系统是在Windows+Apache2.4+php5.6连接:...

2018-08-07 15:27:18 148

转载 swoole之代码热更新实现

 随着swoole的版本迭代更新,已经足够稳定了,在阿里,腾讯,yy等各大公司都有着使用,也有很多游戏圈里的朋友也在使用,这些朋友经常会提到一个问题,每次代码更新还需要停止服务,然后重新启动,来达到更新代码,然而这种做法,是比较粗暴的。其实swoole里提供reload的特性,完全支持代码的热更新。在介绍swoole的reload之前,先简要的讲讲web方式是如何改了文件就立即生效的:  ...

2018-08-01 14:20:49 4535

转载 php实现快速排序

首先我们要理解一下快速排序的原理:找到当前数组中的任意一个元素(一般选择第一个元素),作为标准,新建两个空数组,遍历整个数组元素,如果遍历到的元素比当前的元素要小,那么就放到左边的数组,否则放到右面的数组,然后再对新数组进行同样的操作,不难发现,这里符合递归的原理,所以我们可以用递归来实现。使用递归,则需要找到递归点和递归出口:递归点:如果数组的元素大于1,就需要再进行分解,所以我们的递归点就是新...

2018-05-22 11:49:53 139

原创 PHP创建WebService服务

1.创建Service.php&lt;?phpclass Service { public function HelloWorld() { return "Hello"; } public function Add($a, $b) { return $a + $b; }}//if(file_exists('Service....

2018-05-04 16:29:25 762 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除