自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PHP性能优化的方法

PHP7的版本比PHP5要提升不少,大概在2~3倍的样子,但是为了更好的提升PHP7的性能,有些地方还是可以进一步优化。1.开启opcach 1.zend_extension=/youpath/opcache.so 2.opcache.enable=1 3.opcache.enable_cli=1" ............. 人...

2019-07-01 00:06:02 274 1

原创 PHP 控制反转与依赖注入详细分析与代码实现

PHP有很多的设计模式,比如单例模式,订阅模式,策略模式,工厂模式,观察者模式,这些设计模式其实无非都是为了让程序简化,容易维护,模块间解耦。现在我们来讲讲PHP的另外一种设计模式,控制反转/依赖注入,这两者其实是同一个概念,只是凶不同的角度去解释的而已。依赖注入:是从需要实现的业务逻辑上面去解释的,你实现这个逻辑,需要将写好的某个模块,也就是你依赖的功能服务者,注入到程序容器中去,然后去使用...

2018-10-30 20:20:15 379 1

原创 数据加密---之KMS

KMS,是Key Management Service的简称,是指通过KMS独立的密匙管理服务系统,给其他系统发放密匙,其他系统就根据这个发放的key去加密和解密数据,这其中有几个技术点需要弄清楚。Q: 1:kms服务密匙的获取 2:根据获取的密匙解码转换得到新的密匙,这其中有对应的解码算法 3:用转换的到的新的密匙去加解密数据,一般是用AES或者RSA算法。 4:...

2018-10-10 16:06:13 4354 2

原创 Laravel $model->save()的相关底层实现逻辑代码

    相信很多人就对这个问题很疑惑:   $model = new Model(); $mdoel->user_name = $userName;$mdoel->save();       其中的user_name是怎么给赋值上的呢?我以前也比较困惑,后来看看底层的相关代码,才拨开云雾。从这里我也发现了运用别人的框架去写代码做项目其实是极为低级的一种程序工作,因为高水平高质量的代码都...

2018-06-24 12:41:39 3895 2

原创 插入排序的时间复杂度分析和代码实现

插入排序

2018-05-31 10:09:16 416

原创 堆排序

等待更新

2021-03-21 22:32:27 106 1

原创 处理超大csv文件的方案

在平时我们用PHP去处理读取csv文件导数据入库的时候,一般都会不约而同的想到PHPExcel,PhpSpreadsheet这些插件,然后调用load方法,输出数组,然后循环去处理文件,嗯没错!这是很好的一个选择,现成的成熟的一个插件包,拿来即用,也没有什么程序上的bug;但是这里面存在一个性能的问题,对一些小的csv文件,1万行数据以内基本可以轻松使用,但是数据量偏大了,会有一个内存的问题,你会...

2020-01-07 12:01:06 3636

原创 Redis分布式锁的实现

在对多进程互斥访问或者修改共享资源的时候,在多节点可能会做相同重复工作的时候,为了正确性,效率性,分布式锁就可以应用到这些场景了。分布式锁有三大基础特性 1.互斥性:和数据库等行锁一样互斥性是最基本的。 2.高效高可用:获取锁要效率高,高可用,大多数锁节点正常情况下,锁管理器可以正常工作。在单实例中实现锁,一般运用命令set key rand_value...

2019-07-09 00:04:31 144

原创 Redis 相关的知识(数据持久化,数据过期原理)

一 数据持久化 1.rdb 就是在指定的时间间隔内将内存中的数据集快照写入到磁盘(实际上就是fork一个子进程,先将数据集写入一个零时的文件,写入成功了,再替换之前的文件) 2.aof 以日志的形式记录操作的命令,是记录到文件的末尾。二 数据过期的原理 1 定时删除 设置key的时候,为key创...

2019-06-27 21:22:28 125

原创 跨域问题的解决方法

在web开发中必然会遇到跨域问题,一般跨域问题,我们都是通过Access-Control-Allow-Origin这个来做的,但是有些浏览器却并不很友好的兼容这个。所以在这种情况下,只能放大招了:在nginx中设置反向代理去实现 这样只要在前端把需要访问的跨域网址改为同源网址,然后在proxy_pass里面去代理真正需要访问的api地址就OK了。这里面还有一个代理的绝对路径和相对...

2019-04-24 17:46:06 124

原创 数据库设计之星形仓库

面对更新表结构非常频繁,数据量大的表,我们可以采用星形仓库形式来做这样的处理

2019-04-19 14:00:17 339

原创 SQL 查询,字符串类字段与int类型条件查询出现的Bug

在sql 查询字段的时候,比如数据的订单字段,这个字段定义的类型为varchar类型,生成的规则是年月日当前的时间戳。比如生成了2019031515526356151234这样的订单,如果sql 的where 条件写法为 oid=2019031515526356151234,这样,mysql引擎会认为你是要检索整型,这样的话就会将oid列转为整型,where条件也转为整型,儿整型为11位,结果可......

2019-03-15 17:01:43 1408 2

原创 Don't know how to define struct flock on this system, set --enable-opcach=no

自己在centos7.3下面装php5.3的时候,报错 checking "whether flock struct is linux ordered"... "no"checking "whether flock struct is BSD ordered"... "no"configure: error: Don't know how to define struct flock...

2019-02-17 21:24:05 635

原创 RSA加密

在rsa加密的时候,对于密文短的很好办,直接openssl_public_encrypt($jsonToken,$pri_encrypted,$pu_key,OPENSSL_PKCS1_PADDING);其中$pu_key为公钥,OPENSSL_PKCS1_PADDING为padding但是遇到明文过长怎么办,那就得分块去加密了,以2048的公钥为例:     $BizmessageEn...

2019-01-29 23:55:27 188

原创 linux 下用openssl 生成RSA秘钥对

1、生成私钥openssl genrsa -out rsa_private_key.pem 10242、将原始私钥转换为pkcs8格式(Java用户需要转,php,.net等用户不用转)openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt3、根据私钥生成公钥openssl rsa -i...

2018-11-30 10:26:40 485

原创 Linux用户密码过期 FAILED to authorize user with PAM (Authentication token is no longer valid; new one req)

今天在在执行crontab失败,查看了下crontab的日志,发现里面提示上面那句话,大致的意思就是执行crontab的用户组的密码过期了。对于这种情况可以给用户组重新做密码期限设置先 chage -l 用户组 查看下情况我这里已经改过了,原本是90,我用 chage -M 99999 www,对www用户组密码期限做了修改,其中99999代表永久.修改后也不需要重启什么的,直接生效。...

2018-11-23 11:01:23 4006

原创 计数排序

等待更新。。。

2018-08-06 17:59:12 100

空空如也

空空如也

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

TA关注的人

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