phpstudy|php Redis存储Session的例子详解

更新时间:2020-03-28    来源:redis    手机版     字体:

【www.bbyears.com--redis】

安装redis服务以及php redis扩展

一:redis安装

Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.0.4.tar.gz
$ tar xzf redis-3.0.4.tar.gz
$ cd redis-3.0.4
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

More:http://www.redis.io/download

二、php扩展:

更多版本:http://pecl.php.net/package/redis
wget http://pecl.php.net/get/redis-2.2.5.tgz
#解压
tar zxvf redis-2.2.5.tgz
#进入安装目录
cd redis-2.2.5
/usr/local/php/bin/phpize
#配置
./configure --with-php-config=/usr/local/php/bin/php-config
#编译安装
make  && make install

安装完成之后,出现下面的安装路径

/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

配置php支持


#编辑配置文件,在最后一行添加以下内容

vim /usr/local/php/etc/php.ini 
extension="redis.so"

这个时候phpinfo()就可以看到redis扩展了。

redis小例子:

$redis = new redis();
$test=$redis->connect("127.0.0.1", 6379);
var_dump($test);
 
$result = $redis->set("test","111cn.net");
var_dump($result);    //结果:bool(true)
 
$result = $redis->get("test");
var_dump($result);   //结果:string(11) "111cn.net"

修改php.ini的设置

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

修改后重启php-fpm,phpinfo()可以查看到session存储在redis中。

如果不想修改php.ini,可在代码中加入:

ini_set("session.save_handler","redis");
ini_set("session.save_path","tcp://127.0.0.1:6379");

如果redis.conf设置了连接密码(requirepass),session的save_path需修改为:tcp://127.0.0.1:6379?auth=requirepass的值。
如果选择redis数据库,session.save_path = "tcp://xx.xx.xx.xx:6789?database=11",诸如此类。

查看redis存储session的值:

session_start();
$_SESSION["sessionid"] = "www.111cn.net";
 
$redis = new redis();
$redis->connect("127.0.0.1", 6379);
//redis用 PHPREDIS_SESSION: 加 session_id 作为key,并且是以string的形式存储
echo $redis->get("PHPREDIS_SESSION:" . session_id()); //输出www.111cn.net
?>

在网上看到有人质疑redis存储session值会有并发一致性的问题(文件存储session有文件锁来处理),这块没有研究。

本文来源:http://www.bbyears.com/shujuku/90243.html

热门标签

更多>>

本类排行