安装Redis与phpredis

时间:2011-8-19     作者:smarteng     分类: 服务器相关


Redis是什么?Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered  sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力

Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF和VM)

Redis支持绝大部分主流的开发语言,如:C、Java、C#、PHP、Perl、Python、Lua、Erlang、Ruby等等。

Redis的功能:

1、Redis的Sharding:Redis支持客户端的Sharding功能,通过一致性hash算法实现,当前Redis不支持故障冗余,在集群中不能在线增加或删除Redis

2、Redis的master/slave复制:

1. 一个master支持多个slave

2.  Slave可以接受其他slave的连接来替代他连接master

3.  复制在master是非阻塞的,而在slave是阻塞的

4.   复制被利用来提供可扩展性,在slave端只提供查询功能及数据的冗余

3、Redis的Virtual Memory功能:vm是Redis2.0新增的一个非常稳定和可靠的功能,

vm的引入是为了提高Redis的性能,也就是把很少使用的value保存到disk,而key保存在内存中。实际上就是如果你有10w的keys在内存中,而只有仅仅10%左右的key经常使用,那么Redis可以通过开启VM尝试将不经常使用的Value转换到disk上保存

4、Redis的附加档案(AOF)功能:Redis通过配置的策略将数据集保存到aof中,当Redis挂掉后能够通过aof恢复到挂掉前的状态。



A.快速安装Redis

1.去Redis官网下载Redis源码





2.解压并执行make安装






1.# tar zxvf redis-2.2.8.tar.gz

2.#cd redis-2.2.8.tar.gz

3.#make

4.#src/redis-server     //注意不要关掉Server





3.测试是否成功安装

 


1.#src/redis-cli

2.redis>set blogname  kylingood

3.OK

4.redis>get blogname

5."kylingood"







B.安装PHP的phpredis模块

1.下载phpredis扩展模块






1.#wget  --no-check-certificate  https://github.com/owlient/phpredis





2.增加phpredis模块






1.#tar zxvf owlient-phpredis-2.1.1-1-g90ecd17.tar.gz

2.#cd  owlient-phpredis-2.1.1-1-g90ecd17

3.# /usr/local/php/bin/phpize   //这个phpize是安装php模块的

4.# ./configure –with-php-config=/usr/local/php/bin/php-config

5.# make

6.# make install





接下来在php.ini中添加:

extension=redis.so

extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/



重启apache或者nginx



3.查看php.ini配置,看是否有如下Redis模块

如图:



4.测试PHP操作Redis服务器.






1.<?php

2.$redis new Redis();

3.$redis->connect('127.0.0.1',6379);

4.$redis->set('test','Hello redis world!');

5.echo $redis->get('test');

6.exit;

7.?>





如果你能成功看到页面输出:Hellow redis world!  那恭喜您,我们Redis初级配置已大功告成。





最后,安装中遇到的问题:

a.启动redis-server出现:

Warning: no config file specified, using the default config.

In order to specify a config file use 'redis-server /path/to/redis.conf'

这个只需要在执行启动时加上,redis.conf的配置路径:

#src/redis-server  /usr/local/redis-2.2.8/redis.conf



b.启动redis-server出现:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.

To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.



警告:过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题,请在/etc/sysctl.conf 添加一项 'vm.overcommit_memory = 1' ,然后重启(或者运行命令'sysctl vm.overcommit_memory=1' )使其生效。



这个警告的处理就很简单了,按照他说的,改一下,重启。发现依旧报警告。然后只好再运行一下命令令'sysctl vm.overcommit_memory=1' 。



c.wget  https://github.com/owlient/phpredis 出现:

--2011-05-29 15:26:31--  https://github.com/owlient/phpredis/tarball/master

Resolving github.com... 207.97.227.239

Connecting to github.com|207.97.227.239|:443... connected.

ERROR: certificate common name *.github.com' doesn't match requested host namegithub.com'.

To connect to github.com insecurely, use `--no-check-certificate'.

Unable to establish SSL connection.



解决方案:在wget 后面加上 “--no-check-certificate” 。原因是:Unable to establish SSL connection,有时间再找找,可能和系统设置有关。



相关软件下载和文章参考列表:

http://redis.io/download

https://github.com/owlient/phpredis

http://blog.csdn.net/chenggong2dm/archive/2010/12/28/6102162.aspx

http://my.oschina.net/zhaocx/blog/14133

http://blog.sina.com.cn/s/blog_620ad6170100ocqr.html