自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PHP性能提升想法

    众所周知PHP是解释性的语言,对于QPS一直是个硬伤,同样的最近火热的GO语言是个编译型的语言,但是两者的接口QPS天壤之别啊,无法比拟。php单台机子qps达到四五百已经很不错了,但是GO可以轻松的上千。这就是解释性语言不能逾越的弊端吗?今天老司机带你们了解一下解释性语言也可以达到这种QPS的成就。    php最多的使用场景就是与nginx通过cgi来交互,这里php-fpm承担了重要...

2018-06-30 11:35:25 332

原创 redis缓存穿透之setnx使用场景

    随着业务的增长,请求并发的增大。很多公司在业务场景中会增加缓存策略,而缓存用的最多的也就是redis了。    今天我们来说一下缓存穿透,我们缓存一般是有时效性的,一定的生命周期过去之后就会消失,一般的系统不会设置永久性的存储,这时候就会遇到一个问题,要么就是主动刷新缓存,要么就是程序被动刷新缓存。    事实证明很多程序当中很少主动刷新因为你要去写脚本,定时去刷新数据,这样的话代价比较大...

2018-06-30 11:13:34 2769

原创 Redis数据类型——列表(链表与数组的差别对比)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。Redis的列表其实就是一个双向链表,他对于操作列表里面的数据就是0(1)的时间复杂度,到这里我们说一下链表和数组对于内存中的优劣势其实在c或者c++中每一个变量的申明都会去内存申请空间,然而我...

2018-03-31 13:37:37 1351

原创 Redis数据类型——散列类型

我们用的redis的散列其实就是一个hash散列:储存多个域值对。一个散列由多个域值对组成,散列的域和值都是以字符串类型来存储的。同一个散列里面域是不能相同的,而域的值则没有这一要求,换句话说,不同域的值可以是重复的。通过命令,用户可以对散列执行设置域值对、获取域的值、检查域是否存在等操作,也可以让 Redis 返回散列包含的所有域、所有值或者所有域值对。这是网上找的一个字符串类型与散列类型命令的...

2018-03-31 13:20:48 246

原创 Redis数据类型——字符串

redis字符串类型他能存储任何类型的字符串,包括二进制,json化对象、邮箱、图片等等的,不过存储的最大最大容量是512MB。命令常用的比如set 设置一个key和value,原本的key有值的时候会覆盖原先的值,重新赋值新的值。成功的时候会返回一个ok。取值的时候就是get key这样子,有key的时候会取出其值,不存在的时候会返回一个false其他的count 是否存在的一些命令手册有,这里...

2018-03-31 13:07:08 223

原创 php设计模式之单例模式

单例模式的要点有三个:1. 一是某个类只能有一个实例;2. 二是它必须自行创建这个实例;3. 三是它必须自行向整个系统提供这个实例。为什么要使用PHP单例模式1. php的应用主要在于数据库应用, 一个应用中会存在大量的数据库操作, 在使用面向对象的方式开发时, 如果使用单例模式, 则可以避免大量的new 操作消耗的资源,还可以减少数据库连接这样就不容易出现 too many connection...

2018-03-21 20:43:08 923

原创 简单实现一个laravelapp容器绑定实例

纵观laravelapp容器里面有一些kernel先行注册的服务,所谓的这些服务就是我们php常用的一些类,laravel预加载的一些框架所用到的类。还有一些就是每次单一绑定实例也就是singleton绑定一个共享实例。下面我们用自己的方式实现一个app的容器绑定<?phpclass App implements \ArrayAccess{    private $_bindings = a...

2018-03-21 20:31:16 1371

原创 php结合echarts画多个折线图

echarts是百度出的一个画图工具基本上是js写出来的,对于php来生成一个折线图或者饼图这些数据可视化来说是相当的方便。在工作中也会常遇到数据可视化的东西,一些简单的图可以用echarts特别的方便。还有hcharts这种的。今天我们以echarts来做例子。下面直接上代码,首先对于一个图形要有一个html的画图的div<div class="container">    <...

2018-03-20 20:19:36 2165

原创 mysql锁与锁调度

MySQL锁· 表锁:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低· 行锁:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高· 页锁:开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般MyISAM表锁MyISAM存储引擎只支持表锁,查询表级锁争用情况可以通过检查table_locks_waited和table_lock...

2018-03-20 15:22:35 466

原创 mysql事务以及事务隔离级别

事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。· 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。· 一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,所有的内部数据结构(如B树索引或双向链表...

2018-03-17 11:56:36 150

原创 mysql五大存储引擎

mysql存储引擎:MyISAM:创建一个myisam存储引擎的表的时候回出现三个文件1.tb_demo.frm,存储表定义;2.tb_demo.MYD,存储数据;3.tb_demo.MYI,存储索引。MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用:1.选择密集型的表。MyISAM存储引擎在筛选大量数据时非常...

2018-03-15 15:29:29 559

原创 基于swoole、redis集合做一个消息订阅

利用swoole开启常驻进程,需要几个按自己的情况来定,swoole进程数最好是和服务器cpu核数相等上篇和这里我用的都是woker进程没有用task_workerredis 有序集合score可以按时间戳来吧需要发送的数据存储起来利用swoole启动的常驻进程不断的去探测,可以设定一段时间去按照score时间排序去把这个时间段的有序集合的数据取出来消费下面上代码:swoole启动代码functi...

2018-03-14 17:39:10 1912

原创 基于swoole、redis做一个消息通知功能

利用swoole开启常驻进程,需要几个按自己的情况来定,swoole进程数最好是和服务器cpu核数相等利用swoole启动的常驻进程不断的去探测redis队列里面的值,可以按键值来做一个快中慢这样的权重处理,需要急需处理,数据量大的可以用多几个进程,一般的可以分配不同的进程数来执行。下面上代码:swoole启动代码function run(){ try { $swoole...

2018-03-14 17:28:21 6537

原创 curl高低版本传输文件

这几天因为要调用java接口所以要传输文件  我选择了curl传文件,这边说一个坑,就是我在文件传输的时候用了原来的@后边直接加上文件绝对路径。然而一直没有错误就感觉一直没有发送出去,后来我用了win下的试了一下,直接抛出警告说这个方法已经过时了,请用curlfile函数代替。到现在我才知道原来是自己的电脑一直没开警告报错,win下我一直开着的,这个问题纠结看好一段时间。下面就上代码看看c

2016-07-03 08:48:59 593

原创 ajax跨域post方式

上一篇博客说了ajaxgetjsonp跨域方式,需要注意的一些事项下面说一下post方式传输数剧以及后端接受。先直接上ajax代码:$(document).ready(function() { $('#submit1').click(function(){ var data = new FormData($("#form1")[0]); //$("form").se

2016-07-03 08:35:21 8091

原创 ajax跨域getjsonp

最近研究了一下ajax跨域传输的问题,ajax跨域有两种方式,一种就是按getjsonp得方式,另一种就是post传输。先来说一下getjsonp传输吧,getjsonp传输最重要的就是以下几点:1:必须是get方式2:数据类型必须是jsonp3:就是ajax必须加上jsonp: "callback",回调4:同样的也要在服务端加上回调下边直接上代码前端ajax代码

2016-07-03 08:26:21 1713

空空如也

空空如也

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

TA关注的人

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