Home  >  Article  >  Backend Development  >  php下session入memcached

php下session入memcached

WBOY
WBOYOriginal
2016-06-23 13:23:301018browse


windows7 32位环境下所需软件


一、安装Apache2.4+PHP5.6
Apache2.4配置httpd.conf

参考文章:http://jingyan.baidu.com/article/fcb5aff797ec41edaa4a71c4.html

    ServerRoot "c:/Apache24"
    Listen 8080
    DocumentRoot "c:/Apache24/htdocs"
    
    # php5 support
    LoadModule php5_module c:/php-5.6.15-Win32-VC11-x86/php5apache2_4.dll
    AddType application/x-httpd-php .php .html .htm
    # configure the path to php.ini
    PHPIniDir "c:/php-5.6.15-Win32-VC11-x86"
  
memcache存放超过三十天的数据,0表示永不过期,expire最大是30*3600*24秒
  bool Memcache::add  ( string $key  , mixed  $var  [, int $flag  [, int $expire  ]] )

time()+天数*3600*24即可




memcached无用户名和密码机制,启用防火墙封杀11211端口
只允许本地访问11211端口
    iptables -a input -p tcp -s 127.0.0.1 -dport 11211 -j ACCEPT


二、session入memcached

          //传统的代码
    session_start();
    $_SESSION['name']='天龙八部'; 
    //取出
    $name=$_SESSION['name'];
     echo "name=$name";
    ?>

传统php.ini中配置session存放在文件中

        [Session]
    session.save_handler=files
    session.save_path="c:/windows/temp"

修改php.ini文件,加载php_memcache.dll(版本要与php版本一致,放在php安装目录下的ext目录)

    extension=C:\php-5.6.15-Win32-VC11-x86\ext\php.memcache.dll

    session.save_handler=memcache
    session.save_path="tcp://127.0.0.1:11211"

session入memcache代码
 
        session_start();
    $_SESSION['name']='天龙八部100';
    $_SESSION['city']='beijing';
    
    //如果session数据入mem,那它一定是以session_id为key值进行添加
    //取出
    $name=$_SESSION['name'];
     echo "name=$name";
     echo "sessionid=".session_id();
    ?>

如果不使用memcache php.memcache.dll扩展支持,可以使用memcached_client.php原生函数,只不过效率低


如果管理员不让我们修改php.ini文件,我们如何实现session入memcached功能,我们通过ini_set函数动态修改php.ini的配置,只作用于本页面,别的php页面不受影响,配置文件也不会被修改

    ini_set("session.save_handler","memcache");
    
    ini_set("session.save_path","tcp://127.0.0.1:11211");

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn