当前位置:首页 > 资讯 > 开源软件 > 正文

让php Session 存入 redis 配置方法

发表于: 2015-01-30   作者:党程   来源:转载   浏览次数:
摘要: 首先要做的就是安装redis 安装方法:http://redis.io/downloadInstallation Download, 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
  • 首先要做的就是安装redis 

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

Installation
Download, 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
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

  • 然后是安装phpredis扩展 redis.so

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

/////////////////////////////
//以下代码为参考网站安装方法,请根据自己的实际安装位置自由调整,
/////////////////////////////
cd /usr/local
sudo mkdir src
cd /usr/local/src
sudo mkdir phpredis-build
cd phpredis-build
sudo git clone --depth 1 git://github.com/owlient/phpredis.git
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install

cd /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>';
var_dump($_SESSION['test_session']);
echo '</pre>';
  • 页面输出,我们可以看出我们已经成功存储并且通过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 8888
127.0.0.1:8888> select 0
OK
127.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>


让php Session 存入 redis 配置方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在java web环境中一般都会有回话session存储登陆信息和用户信息,在负载均衡的时候都要处理这些回话
在java web环境中一般都会有回话session存储登陆信息和用户信息,在负载均衡的时候都要处理这些回话
/* ******* Date:2014-09-28 ******* Author:小dee ******* Blog:http://www.cnblogs.com/dee091
网上有很多关于php-redis的配置,今天要用到php-redis,所以百度看了很多教程。有所收益,但是也发
前面一篇已经向大家介绍了《redis的图形界面管理工具:phpredisadmin》,URL:http://blog.csdn.net
如图,php的session id存在cookie中,过期时间为会话结束时(关闭浏览器)。关闭浏览器,cookies被
如图,php的session id存在cookie中,过期时间为会话结束时(关闭浏览器)。关闭浏览器,cookies被
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面
为什么要把SESSION保存在缓存   就php来说,语言本身支持的session是以文件的方式保存到磁盘文件
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号