自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

稻草人技术博客

Keep Calm and Carry On

  • 博客(25)
  • 收藏
  • 关注

原创 YUM安装PHP5.5及phpredis扩展

#yum install php55-php.x86_64 php55-php-cli.x86_64 php55-php-common.x86_64 php55-php-devel.x86_64 php55-php-gd.x86_64 php55-php-mbstring.x86_64 php55-php-pdo.x86_64 php55-php-xml.x86_64 php55-php-fpm.

2016-02-26 15:16:53 2418

原创 Linux命令(11):系统信息查看命令

系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

2016-02-25 14:12:06 383

转载 MySQL 主从复制与读写分离概念及架构分析

1.MySQL主从复制入门首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复

2016-02-21 23:24:05 423

原创 PHP字符串全排列

方法一:$str = 'abc';$a =str_split($str);perm($a, 0, count($a)-1);function perm(&$ar, $k, $m) { if($k == $m){ echo join('',$ar), PHP_EOL; }else { for($i=$k; $i<=$m; $i++) {

2016-02-21 00:17:28 5799

转载 Innodb中的事务隔离级别和锁的关系

前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。#一

2016-02-19 19:57:24 525

转载 MySQL中一致性非锁定读

一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据,如果读取的行正在执行DELETE或UPDATE操作,这是读取操作不会因此等待行上锁的释放。相反的,InnoDB会去读取行的一个快照数据 上面展示了InnoDB存储引擎一致性的非锁定读。之所以称为非锁定读,因为

2016-02-19 19:52:15 534

转载 Innodb事务隔离级别

一、事务隔离级别ANSI/ISO SQL标准定义了4中事务隔离级别:未提交读(read uncommitted),提交读(read committed),重复读(repeatable read),串行读(serializable)。对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有下面3种现在:1、脏读(dirty read):一个事务可

2016-02-19 19:49:02 337

原创 InnoDB的多版本一致性读的实现

InnoDB是支持MVCC多版本一致性读的,因此和其他实现了MVCC的系统如Oracle,PostgreSQL一样,读不会阻塞写,写也不会阻塞读。虽然同样是MVCC,各家的实现是不太一样的。Oracle通过在block头部的事务列表,和记录中的锁标志位,加上回滚段,个人认为实现上是最优雅的方式。 而PostgreSQL则更是将多个版本的数据都放在表中,而没有单独的回滚段,导致的一个结果是回滚非常快,

2016-02-19 19:44:37 1348 1

转载 防盗链的基本原理与实现

我的实现防盗链的做法,也是参考该位前辈的文章。基本原理就是就是一句话:通过判断request请求头的refer是否来源于本站。(当然请求头是来自于客户端的,是可伪造的,暂不在本文讨论范围内)。首先我们去了解下什么是HTTP Referer。简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务

2016-02-19 11:28:57 17140

原创 MySQL主从搭建

主从服务器是mysql实时数据同步备份的一个非常好的方案了,现在各大中小型网都都会使用mysql数据库主从服务器功能来对网站数据库进行异步备份了,下面我们来给大家介绍主从服务器配置步骤。 Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 (1)首先确保主从服务器上的Mysql版本相同 (2)在主服务器上,设置

2016-02-19 11:21:45 419

转载 PHP实现二叉树遍历(非递归方式,栈模拟实现)

二叉树定义是这样的:一棵非空的二叉树由根结点及左、右子树这三个基本部分组成,根据节点的访问位置不同有三种遍历方式: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(Pos

2016-02-18 16:37:04 1237

原创 计数排序、桶排序和基数排序

计数排序当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量内存。计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。但是,计数排序可以用

2016-02-18 13:05:26 449

原创 O(n)时间内对[0..n^-1]之间的n个数排序

题目如何在O(n)时间内,对0到n^2-1之间的n个整数进行排序思路把整数转换为n进制再排序,每个数有两位,每位的取值范围是[0..n-1],再进行基数排序代码#include <iostream>#include <cmath>using namespace std;int n, radix, length_A, digit = 2;void Print(int *A, int start,

2016-02-18 12:58:13 1096

原创 常用排序算法分析

1. 插入排序1.1 性能分析时间复杂度O(n^2), 空间复杂度O(1) 排序时间与输入有关:输入的元素个数;元素已排序的程度。 最佳情况,输入数组是已经排好序的数组,运行时间是n的线性函数; 最坏情况,输入数组是逆序,运行时间是n的二次函数。1.2 核心代码 public void sort(){ int temp; for(int i = 1; i<arraytoS

2016-02-18 12:06:30 526

原创 PHP快速排序

快速排序算法是对冒泡算法的一个优化。他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来。这里用到了递归的思想。PHP实现:/* 快速排序*/function quickSort($

2016-02-17 16:24:51 428

原创 PHP最长单一子串

<?php$s='abcccddddddcdefg';$max='';while($s!=''){ $i=0; while($i<strlen($s) && $s[$i]==$s[0]) $i++; if ($i>strlen($max)){ $max=substr($s,0,$i); }

2016-02-17 16:21:37 3449

原创 PHP实现常见排序算法

<?//插入排序(一维数组)function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i - 1; while($arr[$j] > $tmp){ $arr[$j+1

2016-02-17 16:11:11 278

原创 HTTP Header 详解

HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。首先传递message- header,即http header消息 。http header 消息通常被分为4个部分:g

2016-02-16 19:19:42 382

原创 列举你能想到的UNIX信号,并说明信号用途

信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。 UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。 Unix信号量也可以在文件/u

2016-02-16 18:36:21 1518

转载 memcache的一致性hash算法使用

概述1、我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。 2、常规hash算法的应用以及其弊端 最常规的方式莫过于h

2016-02-16 17:43:23 489

转载 memcached的最佳实践方案

基本问题1、memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行

2016-02-16 17:00:08 1282

原创 is_writeable函数bug问题

【题目】PHP的is_writeable()函数存在Bug,无法准确判断一个目录/文件是否可写,请写一个函数来判断目录/文件是否绝对可写。 【级别】六级 【解决】 下面是CodeIgniter 中的is_really_writable函数解决方案,详见函数注释 其中bug存在两个方面, 1、在windowns中,当文件只有只读属性时,is_writeable()函数才返回false,当返回t

2016-02-16 12:21:25 2759

转载 Memcached集群/分布式的单点故障

口水:Memcached在2009风靡全球,现在对Memcached态度大家各自褒贬不一,话不多说进入正题。 我看到过这样一段文字 “ memcached如何处理容错的? 不处理!:) 在memcached节点失效的情况下,集群没有必要做任何容错处理。如果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方案供您选择: * 忽略它! 在失效节点被恢复或替换之前,还有很多其他

2016-02-16 12:05:33 1103

转载 PHP过滤XSS攻击的函数

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,进而达到某些人的攻击目的。<?phpfunction RemoveXSS($val) { // remove all non-printable characters. CR(0a) and LF(0b)

2016-02-16 10:56:57 4265

转载 PHP中include()与require()的区别说明

引用文件的方法有两种:require 及 include。两种方式提供不同的使用弹性。require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 in

2016-02-14 16:19:38 309

空空如也

空空如也

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

TA关注的人

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