- 浏览: 110285 次
- 性别:
- 来自: 广州
最新评论
文章列表
先附上签名的代码
$privateKeyFile = '/data/private.pem';
$password = '123456';
$privateKey = file_get_contents($privateKeyFile);
$pKeyId = openssl_pkey_get_private($privateKey, $password);
openssl_sign($xmlSignSrc, $signature, $pKeyId);
openssl_free_key($pKeyId);
$signature = bin2hex($signature); ...
Plupload是一款简单易用且功能强大的文件上传工具, 支持多种上传方式,包括html5、flash、silverlight,、html4。它会智能检测当前环境,选择最适合的上传方式,并且会优先采用Html5方式。请参见Plupload官网进行下载和安装。
阿里云用的Web端直传也是这个强大的插件 https://help.aliyun.com/document_detail/31925.html
用 Gogs 快速搭建自助的 Git 服务
- 博客分类:
- 开源
Gogs是一款类似Github(国内有码市)的开源文件/代码管理系统(基于Git),是一款极易搭建的自助 Git 服务。
据官方介绍:Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
https://gogs.io/docs
/**
* @Purpose: 设置缓存文件信息
* @Method Name:set_user_capacityCache()
* @Parameter: int $uid 用户的uid, array $arr 存放的数据数组
* @Return: 返回存放文件的字符长度
*/
function set_user_capacityCache($uid, $arr){
$objfile = get_user_capacityCache_path($uid);
$arrays = array();
if(file_exists($objfile)){
$ar ...
使用 Socket 抓取数据
- 博客分类:
- 开发
要在客户端操作 Socket ,可使用 fsockopen、socket_create、stream_socket_client 等函数实现。如果是PHP 5,建议使用 stream_socket。
fsockopen 实现长连接。Client 方与 Server 方先建立通信连接,连接建立后不断开,然后再进行报文发送和接收。
使用 Socket 获取数据的实现,GET 方法。
<?php
$fp = fsockopen("www.guaten.com",80, $errno, $errstr, 10) or die("$errst ...
PHP 中的 Socket 函数
- 博客分类:
- 开发
Socket 就是一种通信机制,类似于银行、电信这些部门的电话客服部门。打电话时,对方会分配一个坐席代表回答你的问题,客服部门就相当于 Socket 的服务器端,你就相当于客户端。在通话结束前,如果有人想找到和你通话的坐席代表是不可能的,因为你们正在通信,客服部门的电话交换机也不会重复分配。
Socket 函数的原型定义如下:
SOCKET socket( int af, int type, int protocol);
Socket 函数的原型定义如下:
af:指定应用程序使用的通信协议的协议族,对于 TCP/IP 协议族该参数置 AF_INET,对于 NU ...
改善 MyISAM 性能措施
- 博客分类:
- 数据库
MyISAM 存储引擎需要监控的信息很少。这是因为 MyISAM 存储引擎是建立在 Web 应用程序上的,主要致力于快速查询,因此,对于该存储引擎,你只需要调节服务器上的一个功能——Key cache。这并不意味着没有其他措施可以用来提高性能,相反,有很多事情可以做。提高性能的方法大致分为三类:优化磁盘存储、通过监控和优化 Key cache 来有效地使用内存,以及优化数据库表。
主要从以下几个方面来讨论如何提高性能:
优化磁盘存储;
优化数据库表;
使用 MyISAM 实用工具;
按照索引顺序存储表;
压缩表;
对数据表进行碎片整理;
监控 Key Cache ...
提高 MySQL 存储引擎 InnoDB 性能
- 博客分类:
- 数据库
InnoDB 存储引擎的架构非常复杂,是专门为高并发性和复杂事务性活动和设计的。它有许多高级功能,应该在改进性能前优先考虑这些功能。我们主要关注那些可以被监控和改进的功能,包括索引、缓冲池、日志文件和表空间。
InnoDB 表使用聚集索引。即使未指定索引,InnoDB 也会为每行分配一个内部值,用于使用聚集索引。聚集索引是一种数据结构,它不仅存储索引,还存储数据本身。也就是说,一旦定位到某索引中的某个值,就可以直接检索数据而无需额外的磁盘寻道。当然,主键索引或者表的第一个唯一索引都采用聚集索引创建。
如果创建了二级索引,聚集索引的关键字(主关键字、唯一键或者行 ID)信息都会 ...
MySQL 5.5 复制格式
- 博客分类:
- 数据库
基于语句复制的优点
从 MySQL 3.23 起就已经支持基于语句复制了
不用把大量的数据写进日志文件。当删除或者更新大量的数据时,日志的储存空间增长速度不会很快
日志记录了那些数据更改的SQL语句,保证数据库的一致。
基于语句复制的缺点
基于语句的复制中,以下语句是不安全的。使用基于语句的复制中,并非所有的修改数据(例如 INSERT DELETE, UPDATE和 REPLACE语句)语句都可以成功被复制。在使用基于语句的复制中,任何不确定的行为是难以复制的。诸如这类数据修改语言(Data Modification Language),还有以下这些
...
MySQL5.5 分区简述
- 博客分类:
- 数据库
随着数据库应用规模的扩展,需要管理的数据规模也越来越大,普通的数据库查询优化机制在某些情况下已不能再满足性能的要求了。利用数据库分区技术,可以有效地减少 I/O 的数量,提升系统的查询性能。
1.什么是分区?
数据库分区是一种物理数据库设计技术,DBA 和数据库建模人员对其相当熟悉。虽然分区技术可以实现很多效果,但其主要目的是在特定的 SQL 操作中减少数据库读/写的总量以缩减响应的时间。 分区(Partitioning)是数据库优化的一种方式。简单来说就是将同一数据表中的记录通过特定的算法进行分离,分别保存在不同的数据表中,甚至可以部署在不同的物理磁盘上,分 ...
MySQL 5.5 主从复制配置
- 博客分类:
- 数据库
第一步:确认主从服务器的 MySQL 版本。
MySQL 不同版本的 BinLog 格式可能不一样,最好采用相同版本。如果达不到要求,必须保证主服务版本不高于从服务器版本。用 mysql -V 命令查看。
第二步:在主服务器上为从服务器设置一个连接帐号,授予 REPLICATION SLAVE 权限。
每个从服务器使用标准 MySQL 用户名和密码连接主服务器。假定域为 mydomain.com,要创建用户名为 “repl” 的账户,从服务器使用该账户从域内任何主机使用密码 “pass4slave” 访问主服务器。创建该账户使用 GRANT 语句:
m ...
MySQL 5.5 主从复制工作原理
- 博客分类:
- 数据库
主从复制功能通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间 SELECT 查询可以发送到从服务器,以降低主服务器的查询处理负荷。修改数据的语句仍然发送到主服务器,以使主、从服务器保持同步。如果非更新查询为主(如 SELECT 查询),该负载均衡策略很有效。 MySQL 主从复制优点如下:
增长健壮性。主服务器出现问题时,切换到从服务器作为备份。
优化响应时间。不要同时在主从服务器上进行更新,这样可能引起冲突。
在从服务器备份过程中,主服务器继续处理更新。
主从复制工作原理
主从复制通过 3 个过程实现,其中一个过程 ...
PHP5中使用PDO连接数据库
- 博客分类:
- 开发
1.什么是PDO?
PDO(PHP Data Objects) 是 PHP 的一个扩展,定义了一系列轻量级的、通用性的、跨数据库的访问接口。 在以前,如果你用的是MySQL数据库,要打开 php_mysql.dll 的一个扩展,然后用 PHP 提供的 MySQL 函数来访问数据库;如果你用的是 MSSQL,就打开 php_mssql.dll 的扩展,用 PHP 提供的 MSSQL 函数来访问数据库。现在,你只要打开 pdo 相应的数据库扩展(例如:在Windows 平台 PHP 5.3.5 的 php.ini 中 php_pdo_mysql.dll,php_pdo_mssql. ...
MySQL 语句性能分析
- 博客分类:
- 数据库
MySQL 执行计划就是在一条 SELECT 语句前放上关键词 EXPLAIN ,MySQL 解释它将如何处理 SELECT,提供有关表如何联合和以什么次序联合的信息。借助于 EXPLAIN 可以知道:
什么时候必须为表加入索引,以得到一个使用索引找到记录的更快的 SELECT 方法。
优化器是否以一个最佳次序联结表
各属性的含义如下:
id:查询的序列号
select_type:查询的类型,主要包括普通查询、联合查询和子查询。
table: 所访问数据库中表的名称。
type:联合查询使用的类型。
possible_keys:指出 MySQL 能使用哪个索引在该表 ...
MySQL 调整优化措施
- 博客分类:
- 数据库
1. 关闭不必要的二进制日志和慢查询日志,仅在内存足够或开发调试时打开它们。使用下面的语句查看查询是否打开。
show variables like '%slow%';
还可以使用下面的语句查看慢查询的条数,定期打开方便优化。
show global status like '$slow%';
但是慢查询也会带来一些 CPU 损耗。建议间断性打开慢查询日志来定位性能瓶颈。
2. 适度使用 Query Cache。
show global variables like '%query_cache%';
通过检查 have_query_ca ...