首页 >后端开发 >php教程 >php Redis存储Session

php Redis存储Session

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原创
2016-07-29 09:12:361232浏览

更多请支持:http://www.webyang.net/Html/web/article_180.html

Redis是一个高性能的key-value数据库。redis的出现,在部分场合可以对关系数据库起到很好的补充作用。另外一方面,在session存储上,也有很多人选择redis。通过它来弥补文件存储的速度和效益,以达到一个更高的可用性。

修改php.ini的设置

<ol>
<li value="1">
<span>session</span><span>.</span><span>save_handler </span><span>=</span><span> redis</span>
</li>
<li>
<span>session</span><span>.</span><span>save_path </span><span>=</span><span>"tcp://127.0.0.1:6379"</span>
</li>
</ol>
修改后重启php-fpm,phpinfo()可以查看到session存储在redis中。
如果不想修改php.ini,可在代码中加入:
<ol>
<li value="1">
<span>ini_set</span><span>(</span><span>"session.save_handler"</span><span>,</span><span>"redis"</span><span>);</span>
</li>
<li>
<span>ini_set</span><span>(</span><span>"session.save_path"</span><span>,</span><span>"tcp://127.0.0.1:6379"</span><span>);</span>
</li>
</ol>
如果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的值:
<ol>
<li value="1">
<span></span><span>php</span>
</li>
<li>
<span>session_start</span><span>();</span>
</li>
<li>
<span>$_SESSION</span><span>[</span><span>'sessionid'</span><span>]</span><span>=</span><span>'www.webyang.net'</span><span>;</span>
</li>
<li><span> </span></li>
<li>
<span>$redis </span><span>=</span><span>new</span><span> redis</span><span>();</span>
</li>
<li>
<span>$redis</span><span>-></span><span>connect</span><span>(</span><span>'127.0.0.1'</span><span>,</span><span>6379</span><span>);</span>
</li>
<li><span>//redis用 PHPREDIS_SESSION: 加 session_id 作为key,并且是以string的形式存储</span></li>
<li>
<span>echo $redis</span><span>-></span><span>get</span><span>(</span><span>'PHPREDIS_SESSION:'</span><span>.</span><span> session_id</span><span>());</span><span>//输出www.webyang.net</span>
</li>
<li><span>?></span></li>
</ol>

在网上看到有人质疑redis存储session值会有并发一致性的问题(文件存储session有文件锁来处理),这块没有研究。
linux安装redis服务以及php redis扩展:www.webyang.net/Html/web/article_174.html


以上就介绍了php Redis存储Session,包括了require方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn