方法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查看sessionphp-fpm
到這兒session存儲到redis是沒有問題了,怎麼同步呢。多服務器時,redis是能夠配置同步的ui