zoukankan      html  css  js  c++  java
  • 让php Session 存入 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>
      
  • 相关阅读:
    至理明言100个经典句子
    ASP操作cookies的方法
    Recordset属性与方法
    VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
    诺基亚10个不为人知的秘密
    JavaScript的常用事件/方法/特效
    javascript常用方法
    C#操作xml
    URL重写
    数据库之间的区别
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4459866.html
Copyright © 2011-2022 走看看