將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

相關文章
相關標籤/搜索