zoukankan      html  css  js  c++  java
  • php用redis保存session

    1.修改php.ini中session配置:

    ini_set('session.save_handler', 'redis');
    ini_set('session.save_path', 'tcp://192.168.1.10:6379');
    //redis有密码的话
    //ini_set('session.save_path', 'tcp://192.168.1.10:6379?auth=password');

    注意:php-fpm.conf中的配置会覆盖php.ini中的配置,所以要确保php-fpm中的对应配置关闭,或者修改:



    2.代码中使用session:
    <?php
    /*
    *可以配置如下选项
    *
    session.auto_start = 1 --自动开始,不需要session_start()
    *session.cookie_lifetime = 31536000 --cookies中的session_id一年才过期,默认是0,关闭浏览器就过期。

    *session.gc_maxlifetime = 1447 --session回收时间,默认1447,存贮在redis中的session的expire被设置为此项。
    */
    session_start(); // 可以配置session.auto_start = 1 ,自动开启。
    
    $_SESSION['foo'] = 'bar';
    echo $_SESSION['foo'];   //bar, 当前的session已经存在redis中
    
    //redis中以string类型存储session
    $redis = new Redis();
    $redis->connect('localhsot', 6379);
    echo $redis->get( 'PHPREDIS_SESSION:'.session_id() );
    //格式:string(29) "uid|i:554:"";username|s:5:"hello";" 



  • 相关阅读:
    pat乙级1018
    下拉框多选,出现这种情况,求大神帮我看看
    Filter 过滤器
    拦截器和过滤器区别
    Servlet 生命周期
    cannot simultaneously fetch multiple bags 问题的解决办法
    JPA规范及其它持久层框架
    数据库设计的三大范式
    装饰者模式
    Java 流
  • 原文地址:https://www.cnblogs.com/leezhxing/p/4128204.html
Copyright © 2011-2022 走看看