将session保存到redis中的方法

方法1、php

session.save_handler = redis
session.save_path = “tcp://127.0.0.1:6379″
修改后重启php-fpm或nginx,phpinfo()nginx

方法2、redis

ini_set(“session.save_handler”,”redis”);
ini_set(“session.save_path”,”tcp://127.0.0.1:6379″);服务器

若是配置文件/etc/redis.conf里设置了链接密码requirepass保存session的时候会报错,save_path这样写 tcp://127.0.0.1:6379?auth=authpwd 便可。session

<?php
session_start();
$_SESSION['redis'] = "aaaaaa";
echo session_id();
echo "<br>";
echo $_SESSION['redis'];
echo "<br>";
$redis = new redis();
$redis->connect('192.168.1.108', 6379);
echo $redis->get("PHPREDIS_SESSION:ruk5i2vlu2hvtmfr5hig4l55f6");//这个key我是经过telnet到redis查的。
?>

页面显示结果

echo session_id();显示出来是ruk5i2vlu2hvtmfr5hig4l55f6,开始的时候,echo $redis->get("ruk5i2vlu2hvtmfr5hig4l55f6");无论怎么样都取不到值,由于memcache这样是能够取 到值的,因此我就想redis估计也是这样。telnet到redis看了一下,原来命名key值的方式是不同的,看下图tcp

redis telnet查看session

redis telnet查看sessionphp-fpm

到这儿session存储到redis是没有问题了,怎么同步呢。多服务器时,redis是能够配置同步的ui

相关文章
相关标签/搜索