Heim  >  Artikel  >  Backend-Entwicklung  >  让php Session 存入 redis 配置方法

让php Session 存入 redis 配置方法

WBOY
WBOYOriginal
2016-06-23 13:40:36957Durchsuche

首先要做的就是安装redis 

安装方法:http://redis.io/download

InstallationDownload, extract and compile Redis with:$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz$ tar xzf redis-2.8.19.tar.gz$ cd redis-2.8.19$ makeThe binaries that are now compiled are available in the src directory. Run Redis with:$ src/redis-serverYou can interact with Redis using the built-in client:$ src/redis-cliredis> set foo barOKredis> get foo"bar"

然后是安装phpredis扩展 redis.so

安装方法参考:http://www.lecloud.net/post/3378834922/install-redis-php-extension-phpredis-with

///////////////////////////////以下代码为参考网站安装方法,请根据自己的实际安装位置自由调整,/////////////////////////////cd /usr/localsudo mkdir srccd /usr/local/srcsudo mkdir phpredis-buildcd phpredis-buildsudo git clone --depth 1 git://github.com/owlient/phpredis.gitcd phpredissudo phpizesudo ./configuresudo makesudo make installcd /usr/local/lib/php5/sudo gedit php.ini如果没有配置 extension_dir 的话请配置到你的extension的路径cp redis.so /usr/local/lib/php5/extension/加入一行: extension = redis.so 重启nginx 和 php-fpm 就输出phpinfo 就能看到redis 扩展安装完成

设置php.ini

找到; session.save_handler = files这一行 ,修改为 session.save_handler = redis,把原来的session存储方式改微redis方式这样会提高速度,原因是redis是在内存读取必然比在文件读取要快一些

找到; session.save_path = "/tmp"这一行 ,修改为 session.save_path = "tcp://127.0.0.1:8888",这是指向了本地的tcp服务,这个服务一会是由我们的redis启动

重启nginx 和 php-fpm 就输出phpinfo 就能看到session 保存方式和路径发生了改变

启动redis服务

redis-server --port 8888 &

编写php代码

<?php header("Content-type:text/html;charset=utf-8");session_start();//这个很重要$_SESSION['test_session']= @array('name' =>'fanqie' , 'ccc'=>'hello redis ');$redis = new redis();$redis->connect('127.0.0.1', 8888);echo 'sessionid>>>>>>> PHPREDIS_SESSION:' . session_id();echo '<br/>';echo '<br/>';//redis用session_id作为key并且是以string的形式存储echo '通过php用redis获取>>>>>>>'.$redis->get('PHPREDIS_SESSION:' . session_id());echo '<br/>';echo '<br/>';echo '通过php用session获取>>>>>>><br/>';echo '<pre class="brush:php;toolbar:false">';var_dump($_SESSION['test_session']);echo '
';

页面输出,我们可以看出我们已经成功存储并且通过redis成功获取到了存储的值

sessionid>>>>>>> PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5通过php用redis获取>>>>>>>test_session|a:2:{s:4:"name";s:6:"fanqie";s:3:"ccc";s:12:"hello redis ";}通过php用session获取>>>>>>>array(2) {  ["name"]=>  string(6) "fanqie"  ["ccc"]=>  string(12) "hello redis "}

使用redis客户端查看在redis库中已经存储可以查询到hello redis 这条记录了

dangcheng@dangcheng-pc:~$ redis-cli -p 8888127.0.0.1:8888> select 0OK127.0.0.1:8888> keys *1) "PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5"127.0.0.1:8888> get PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5"test_session|a:2:{s:4:\"name\";s:6:\"fanqie\";s:3:\"ccc\";s:12:\"hello redis \";}"127.0.0.1:8888>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn