将session保存到redis中的方法

方法一、

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

方法二、

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 即可。

<?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查的。
?>

将session保存到redis中的方法_第1张图片

echo session_id();显示出来是ruk5i2vlu2hvtmfr5hig4l55f6,开始的时候,echo $redis->get("ruk5i2vlu2hvtmfr5hig4l55f6");不管怎么样都取不到值,因为memcache这样是可以取 到值的,所以我就想redis估计也是这样。telnet到redis看了一下,原来命名key值的方式是不一样的,看下图

将session保存到redis中的方法_第2张图片

redis telnet查看session

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


你可能感兴趣的:(将session保存到redis中的方法)