linux下为PHP安装Redis扩展模块

# wget
# tar -zxvf owlient-phpredis-2.1.1-0-g5a07edc.tar.gz
# mv owlient-phpredis-5a07edc php-5.3.4/ext/phpredis/
# cd php-5.3.4/ext/phpredis/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# vi /usr/local/php/lib/php.ini
(加入:
extension=redis.so
)
# service httpd -k restart

配置SESSION为:
#<?php
#ini_set('session.save_handler', 'redis');
#session_save_path("tcp://host1:6379?weight=1,tcp://host2:6379?weight=2&timeout=2.5,tcp://host3:6379?weight=2");

如果要安装最新的php扩展.先安装版本控制
# wget http://kernel.org/pub/software/scm/git/git-1.7.2.2.tar.gz
# tar -zxvf git-1.7.2.2.tar.gz
# cd git-1.7.2.2
# ./configure --prefix=/usr/local/git --with-zlib=/usr/local/zlib/ --with-curl=/usr/local/curl/ --with-openssl=/usr/local/openssl/
# make
# make install

# /usr/local/git/bin/git clonehttp://github.com/owlient/phpredis.git//下载源码再安装扩展

 

php测试代码
<?
$redis = new Redis();
$redis->connect(‘127.0.0.1′,6379);
$redis->set(‘test’,'hello world!’);
echo $redis->get(‘test’);
?>

输出hello world!

 

队列测试代码:

入队列操作文件 list_push.php

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
while (true) {
    $redis->lPush('list1', 'A_'.date('Y-m-d H:i:s'));
    sleep(rand()%3);
}
?>

执行
# php list_push.php &

出队列操作 list_pop.php文件
<?php
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
while(true) {
    try {
        var_export( $redis->blPop('list1', 10) );
    } catch(Exception $e) {
        //echo $e;  
    }
}

 

其他测试代码:

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$redis->set('key', 'value');

echo $redis->get('key')."\n";

$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.

$redis->set('key1', 'val1');
$redis->set('key2', 'val2');
$redis->set('key3', 'val3');
$redis->set('key4', 'val4');

$redis->delete('key1', 'key2');
echo $redis->get('key3')."\n" ;

$redis->delete(array('key3', 'key4'));
?>

http://code.google.com/p/php-redis/

================

# redis目前提供四种数据类型:string,list,set及zset(sorted set)。
# * string是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操 作类似。但它的功能更丰富。
# * list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
# * set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
# * zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

 

http://my.oschina.net/zhaocx/blog/14133
http://hi.baidu.com/zjstandup/blog/item/9f38b825d379c96c35a80f7f.html
http://blog.sina.com.cn/s/blog_467eb8ca0100olim.html
http://benliue.blog.163.com/blog/static/13450148201141032353266/

有话要说