吃到老,活到老
对ID进行隐藏 对ID进行隐藏
Hashid不希望对外暴露有规则的数据索引,比如用户 ID 、媒体资源 ID 、商品 ID 、订单号、注册码、优惠码等,防止爬虫侵扰。那就将ID编码咯。 解决方案 vinkla/hashids composer 懂的哈可以自己加salt,这
2019-01-11
延迟队列 延迟队列
比如要实现30分钟未支付订单取消,量少的时候可以用数据库轮训的方式,但是数据量大的话,轮训的并发和准确性就不可靠,这个时候可以用延迟队列来解决这个问题 延迟队列的实现 [RabbitMQ] RabbitMQ通过RabbitMQ Delaye
2019-01-01
Redis 分布式锁 Redis 分布式锁
实现一个分布式锁定,我们至少要考虑它能满足一下的这些需求: 互斥,就是要在任何的时刻,同一个锁只能够有一个客户端用户锁定. 不会死锁,就算持有锁的客户端在持有期间崩溃了,但是也不会影响后续的客户端加锁 谁加锁谁解锁,很好理解,加锁和解锁的
2018-12-04
niftyAdmin 自定义后台管理系统框架 niftyAdmin 自定义后台管理系统框架
niftyAdmin 基于Laravel5.5框架和Nifty前端组建的 基础管理系统框架demo地址 介绍 Larave5.5,nifty后台管理模板,php >=7.0.0 barryvdh/laravel-debugbar
2018-12-01
php-fpm 配置文件优化 php-fpm 配置文件优化
PHP-FPM CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议。它负责处理URL的请求,启动一个进程,将客户端发送的数据作为输入,由Web服务器收集程序的输出并加上合适的头部
2018-07-11
Pypppeteer Pypppeteer
之前做爬虫或者浏览器自动化操作都用selenium ,再配合docker可以进行分布式部署,但是selenium太耗性能,这里有另外个选择puppeteer谷歌浏览器在17年自行开发了Chrome Headless特性,并与之同时推出了pu
2018-06-21
concurrent.futures 并发操作 concurrent.futures 并发操作
concurrent.futures模块的基础是Exectuor,Executor是一个抽象类,它不能被直接使用。但是它提供的两个子类ThreadPoolExecutor和ProcessPoolExecutor却是非常有用,顾名思义两者分别
2018-05-11
协程 asyncio 协程 asyncio
协程可称为用户态的线程,由用户态完成创建,切换和销毁。IO操作频繁的可以由协程异步操作,相比与线程减少线程切换的开销。 关于asyncio的一些关键字的说明: event_loop 事件循环:程序开启一个无限循环,把一些函数注册到事件循环上
2018-04-11
单向链表操作 单向链表操作
PHP 操作单向链表class SingleLinkedListNode { /** * 节点中的数据域 * * @var null */ public $data; /**
2018-03-08
2 / 3