分类目录归档:技术

json_decode如何简单解决解析含有特殊字符的字符串

现在开发接口大多数都是使用的是post一个json字符串过来,然后后端服务进行解析这个json然后做相应的处理,由于接口是开放出去的,调用方使用各种各样的语言来实现,在次就遇到调用方确实post过来一个json字符串,而php就是死活都没有进行对应得业务处理。

继续阅读json_decode如何简单解决解析含有特殊字符的字符串

IO多路复用之epoll总结[转载]

http://www.cnblogs.com/Anker/p/3263780.html

1、基本知识

epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。

继续阅读IO多路复用之epoll总结[转载]

C语言变长数组data[0]的强大意义

­以前一直写结构体时都是用char *data来表达结构体存储可变的数据,这样的做法是非常正常也是常用的形式,前段时间看部分代码时发现一个结构中包含char data[0],第一次见到非常不理解,数组的长度居然可以为0?当时就google了一下,发现很多Linux上的源码中都采用char data[0],想到大神们都采用这种写法,说明这种写法肯定有隐藏着非常观的空间优势或者操作上的方便。为此我决定写个demo来测试一下

继续阅读C语言变长数组data[0]的强大意义

IO多路复用之poll总结[转载]

http://www.cnblogs.com/Anker/archive/2013/08/15/3261006.html

1、基本知识

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

继续阅读IO多路复用之poll总结[转载]

Openresty+Lua开源的图库管理系统:Tadashi Gallery 0.9.8发布

Tadashi Gallery介绍

  1. Tadashi Gallery是什么鬼?
    Tadashi Gallery简称为TG,TG是一个类似于淘宝图片管理系统的简单版,便于将图片按文件夹进行分类管理,方便图片进行多次利用展示。
  2. TG应用背景
    在通常情况下大多数网站都是采用要使用时就进行图片上传,这样是很方便,但是遇到图片重复利用次数过多的网站时,这无非增加了存储空间也增加了图片传输的带宽,而且在多点的站点是部署配置也是非常麻烦,非常不利用扩展。在此环境下TG就诞生了,也借鉴了淘宝图库的一些想法。
  3. TG的好处
    TG在图片重复利用展示的特点就非常明显了,减少服务器的存储空间,减少带宽的压力等。也可以进行二次开发进行,很方便的进行扩展。也可以和fastDFS结合是组合成高性能的的分布式图片系统。
  4. TG的弊端
    TG是采用Lua开发的,并结合OpenResty一起才可运行,相对于用PHP来说没有那么普及并且部署不方便,考虑到TG一旦部署完毕后都不在进行更改的关系,以上因素都可以简单的忽略。

继续阅读Openresty+Lua开源的图库管理系统:Tadashi Gallery 0.9.8发布

sphinx+mysql+php做千万数据级别的搜索引擎

Sphinx是出自俄罗斯的开源全文搜索引擎软件,单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。

Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

继续阅读sphinx+mysql+php做千万数据级别的搜索引擎

openresty+Lua+GraphicsMagick进行类似淘宝的图片处理

一.应用背景

在大多数网站中都会用到图片进行裁剪处理,特别是电商网站都会必须都用到图片进行裁剪,在不同位置都会有不同尺寸进行展示。

在通常情况下大多数采用上传后,程序把图片进行裁剪不同的缩略图。这样在单点得站点是没有什么问题,当访问量大了,服务器从一台变为多台时,问题就很明显了,很不利于扩展。

继续阅读openresty+Lua+GraphicsMagick进行类似淘宝的图片处理