- 博客(48)
- 收藏
- 关注
原创 Lua和php读取MySQL性能比较
Lua和php读取MySQL性能比较php对高并发的优化手段基本上是两个思路,一个是让流量尽量限制在上游的层面,让流量不要一下子涌入后端服务,第二点是读写分离,针对读请求尽量做缓存,写请求尽量请求入队列分批透给db。这样对付一般的高并发是可以抵御的,但是如果是亿万级别的呢?查了下大厂都是用lua来做比较高并发的数据接口,后来想了下确实应该这样来解决,因为当请求进入php的生命周期时,io就是它...
2018-11-03 23:26:14 2610
原创 Portia可视化爬虫部署
安装如果是 ubuntu14.04 可以参考 可视化爬虫Portia安装和部署踩过的坑如果是 ubuntu16.04 ,尝试过本地安装,但是因为老是提示 apt-get 安装错误:Err:15 http://ppa.launchpad.net/beineri/opt-qt551-trusty/ubuntu xenial/main amd64 Packages 404 Not Found
2017-10-26 16:25:06 5029
原创 laravel-队列消息
laravel 队列消息laravel 的队列消息非常简单的开发,原来如下:laravel 存储队列可以是数据库(database), 缓存(redis), 同步(sysc),等等,我们无需考虑队列的出队入队的存储,而只是需要关注,当 laravel 从队列取出一条处理工作的时,需要告诉它怎么做,也就是在代码层面上实现 /APP/Jobs/XXX.php 中的 hangdle() 方法以 Wec
2016-12-17 17:09:25 768
原创 laravel-异常处理
laravel 异常抛出在开发中错误处理是非常重要的,最重要是两点:第一,声明异常的错误代码和信息。第二,不同场景下抛出异常的有所不同,比如 api 中一般是前端 ajax 请求,那么抛出的异常应该是 json 形式,如果是开发模式下,页面中抛出普通异常,便于程序猿调错,在生产环境下,则统一将错误汇总放入一个错误页面进行渲染。声明异常就以一个用户模块来举例:在 /config/exceptions.
2016-12-17 17:08:01 2470 1
原创 nodejs整合银联网关支付
银联支付的测试开发做的很完善,可以下载各个语言的测试包,进行开发测试,但是并没有 nodejs 的,难点就是证书签名还有验签这两个步骤。其实银联加密方式和支付宝微信不同的地方在于,使用了非对称加密,意思是为了在网络中传输安全,双方约定各自产生一个公钥还有私钥,私钥自己保存,公钥公开给对方(你要发送信息的人都知道)。当需要传输秘密的信息时候,用自己的私钥加密,发给对方,对方收到信息后,为了判定这个是否
2016-11-09 12:00:18 3304 4
原创 centOs7上部署LAMP环境详细整理笔记
Apache+Mysql+PHP7部署总结部署过程其中有不少踩坑的地方,这里做个总结。服务器环境LAMP配置apache yum -y install httpd httpd-devel开机启动systemctl enable httpd.service关闭防火墙或者开放80端口,这个很重要,不然根本访问不了,centos7之后就不用 iptables 去管理防火墙了systemctl stop
2016-11-07 10:19:26 5430
原创 MYSQL全备份
网上很多这样的教程,mysql全备份,增量备份这样的,连脚本都有,这里只是做一个记录。开启mysq二进制日志在my.cnf中log-bin=mysql-binexpire_logs_days = 7server_id = 1#避免脚本中出现Warning: Using a password on the command line interface can be,所以加上[client]u
2016-10-09 12:30:26 245
原创 mysql自动插入时间戳
问题想让mysql每条插入的数据中自动存入时间,精确毫秒,每次修改行的时候,自动存入时间,精确毫秒语句CREATE TABLE test1 ( text varchar(30), createdTime TIMESTAMP(6) not NULL DEFAULT CURRENT_TIMESTAMP(6), updatedTime TIMESTAMP(6) not NULL DEFAULT
2016-10-09 11:52:29 13842 1
原创 nodejs-构建http服务器
nodejs-构建http服务器因为工作需要所以上手了node,对于nodejs不需要服务器去处理请求觉得非常神奇,然后决定自己试一下搭建一个http服务器入口文件app.js:var server = require('./server');var router = require('./router');var fs = require('fs');// 保存url处理方法,路由route
2016-09-01 12:49:05 481
原创 php的pdo数据层mysql类
闲着在家没事儿,写着玩。。。<?phpheader("Content-type:text/html;charset=utf-8");/** * Created by PhpStorm. * User: Administrator * Date: 2016/8/9 * Time: 11:48 */abstract class DB{ protected abstract
2016-08-10 15:39:29 267
原创 关于一个分表面试题
题目T1表包含: aid,bid(联合主键) 其中aid每天业务增长行数大约在10万-20万 bid固定为1万个 也就是说,1个aid的记录会产生1万条aid+bid的记录 现在是按天分表,但是每天依然会有超过10亿的数据在一张表请问各位,在按天分表的基础上,我还应该怎么分表?按照bid来分?分多少? 存储引擎为innodb思路原来是每天10亿条数据在一张表上增加1.按bid每天分为1
2016-07-28 17:40:56 1025
转载 PHP的线程安全与非线程安全版本的区别
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多
2016-07-25 10:19:45 4786
原创 桥接模式
桥接模式<?phpabstract class Info{ protected $sender = null; public function __construct($sender){ $this->sender = $sender; } abstract public function msg($content); publi
2016-07-12 15:24:24 255
原创 装饰器模式
装饰器模式<?phpclass BaseArticle{ protected $art = null; protected $content; public function __construct($content){ $this->content = $content; } public function decorator()
2016-07-12 12:52:17 187
原创 策略模式
策略模式<?php//算法抽象类,各种不同的算法以不同的方式实现这个接口interface Math{ public function calo($op1,$op2);}//下面是实现的策略算法class MathAdd implements Math{ public function calo($op1,$op2){ return $op1 + $o
2016-07-11 17:46:32 179
原创 责任链模式
责任链模式<?php$lev = $_GET['report'] + 0;class board{ protected $power = 1; protected $top = 'admin'; public function process($lev){ if($lev power) echo '版主删帖';
2016-07-11 16:29:34 187
原创 观察者模式
js观察者模式 New Document div{ margin:10px; width:500px; height:200px; border:1px solid red; } #ad{ border: 1px solid blue; } window.onload = function(){
2016-07-11 12:53:36 164
原创 单例模式
class sigle{ protected static $ins = null; public function getIns(){ if(self::$ins === null) self::$ins = new self(); return self::$ins; } //方法不能被继承后修改,protected属性new不了 final protected f
2016-07-09 21:06:26 165
原创 工厂模式
简单工厂模式<?php//简单工厂模式/*接口*/interface db{ function conn();}class dbmysql implements db{ public function conn(){ echo '连接上了mysql'; }}class dboracle implements db{ public f
2016-07-08 15:46:17 186
原创 html5中的web存储
web存储 localStorage:是一种没有时间限制的数据存储方式,可以将数据永远保存在客户端,sessionStorage:指的是针对一个session的数据存储,就是将数据保存在session中,当关闭浏览器时,则会清除数据 getItem(key):获取key所存储的value值 key(index):获取列表中对应的key值 length:返回key/
2016-07-08 11:05:46 186
原创 html5动画
.trans_list{ width: 5%; height: 65px; margin:10px 0; background-color: #486AAA; color: #fff; text-align: center; }
2016-07-08 11:04:06 275
原创 html5中的音视频媒体
html5视频音频 audio标签播放音频 会一直试,如果ogg格式不支持,赚到下面mpeg audio标签播放视频 您的浏览器不支持vedio 音视频相关属性
2016-07-08 11:00:21 227
原创 html5绘制图像
.canvas{ border:1px solid #9c9898 } window.onload = function(){ var canvas1 = document.getElementById('canvas1'); var context1 = canvas1.getContext('2d'); var
2016-07-08 10:54:57 328
原创 html5中的CSS属性
.menu ul{ border-top:15px solid black; padding: 0 10px; list-style-type: none; } .menu ul li a{ color: #fff; float:left; margin:0 5px; f
2016-07-08 10:50:41 538
原创 html5新增标签和属性
New Document 新增标签 定义文档中的节,章节,页眉 表示一个独立的,相关的内容块 导航链接部分 用来装载非正文内容,可以被删除,而不会影响正文意思 对标题元素h1-h6进行整合 页脚 页眉 用于对元素进行组合,多用于图片与图片描述组合 mark:定义带有标记的文本,突出显示 I Love You progress:定义运行
2016-07-08 10:48:03 348
原创 07-图4 哈利·波特的考试
#include int Min(int a, int b);int Max(int a, int b);int main(int argc, char const *argv[]){ int N, M; scanf("%d %d", &N, &M); int graph[N+1][N+1]; for (int i = 1; i <= N; i++){ for (int j
2016-05-22 14:11:01 391
原创 利用无权图的单源最短路算法实现地铁换乘图
//Metro.php$MetroVertex = array( 1 => '体育中心', 2 => '体育西路', 3 => '杨箕', 4 => '东山口', 5 => '烈士陵园', 6 => '农讲所', 7 => '公园前', 8 => '西门口', 9 => '陈家祠', 10 => '长寿路',
2016-05-10 17:32:37 928
原创 如何做起来一个微信公众号
今天听了关于运营的分享,内容是如何做好一个微信公众号,做了些笔记,记录下来,以便日后查阅。 运营,往往通过许多看似琐碎无趣的事情,来实现一个光芒闪耀的成果 技术,产品,运营,三足鼎立,缺一不可,切记切记。 1.定位 无论是做产品还是做公众平台,第一个首先考虑的问题都是定位。下面的两个问题,必须考虑清楚:1.用户想看什么?2.能给他们提供什么?
2016-05-05 14:19:29 3720
原创 06-图1 列出连通集
给定一个有NNN个顶点和EEE条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1N-1N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数NNN(0<N≤100<N\le 100N≤10)和EEE,分别是图的顶点数和边数。随后EEE行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。
2016-04-29 11:39:43 853
原创 05-树7 堆中的路径
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数NNN和MMM(≤1000\le 1000≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的NNN个要被插入一个初始为空的小顶堆的整数。最后一行给出MMM个下标。输出格式:对输入
2016-04-27 16:50:53 612 2
原创 04-树5 Root of AVL Tree
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is
2016-04-27 15:43:03 305
原创 04-树4 是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数NNN (≤10\le 10≤10)和LLL,分别是
2016-04-27 15:32:38 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人