2015年1月

Redis和Memcache的区别总结

项目中经常要用到缓存数据,而比较常用的就是Redis和Memcache,下面是从网上收集的信息,把它们进行一个对比,以方便我们根据项目需求做出合适的选择!

总结一:

memcache官方定义

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

redis官方定义

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

- 阅读剩余部分 -

MySQL中information_schema是什么

大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。 information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解。

information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。

在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。

- 阅读剩余部分 -

什么是Hash

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

HASH函数(计算机算法领域)

中文名:散列

外文名:Hash

音译:哈希

表示:任意长度的输入

- 阅读剩余部分 -

什么是架构师?

一个外乡人的故事


夏天很热的一个日子里,一个外乡人沿着一条路在行走。他走着走着,来到一个人跟前,此人正在路边敲碎石头。

“你在做什么?” 他问那个人。

那个人抬头看着他: “我在敲碎石头。你以为我看起业像在干什么? 现在不要妨碍我,让我继续干活。”

这个外乡人继续沿着路走

不久他遇到了第二个在大太阳下敲碎石头的人。

这个人正在努力工作,汗滴如雨。

“你在做什么?” 外乡人问道。

这个人抬头看他,露出微笑。“我在为谋生而工作,” 他说, “但这个工作太辛苦了。也许你能给我一分更好的工作?”

外乡人摇了摇头,继续前行。没多久,他遇到了第三个敲碎石头的人。太阳正是最炙热的时候,这个人非常卖力,汗流如注。

“你在做什么?” 外乡人问道。

这个停了一下,喝了一口水,微笑着抬起他的手,指向天空。

“我在建一座大教堂。” 他喘了口气说。

外乡人看了他一会儿,说: “我们正打算开一家新公司。你来做我们的总建筑师怎么样?”

-- 摘自架构之美

- 阅读剩余部分 -

php实现rsa签名和验签

首先生成一个1024位的私钥:

openssl genrsa -out private.pem 1024

然后根据私钥导出公钥

openssl rsa -in private.pem -pubout -out public.pem

php的openssl扩展里已经封装好了签名和验签的方法,分别是openssl_sign和openssl_verify.

function sign($data){
    $p = openssl_pkey_get_private(file_get_contents('private.pem'));
    openssl_sign($data, $signature, $p);
    openssl_free_key($p);
    return bin2hex($signature);
}

function verify($data, $sign){
    $p = openssl_pkey_get_public(file_get_contents('public.pem'));
    $verify = openssl_verify($data, hex2bin($sign), $p);
    openssl_free_key($p);
    return $verify > 0;
}

- 阅读剩余部分 -