zoukankan      html  css  js  c++  java
  • PHP + Memcache 实现Session共享

    一.安装Memcache和PHP扩展

    Windows下的Memcache安装
    1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached
    2. 在终端(也即cmd命令界面)下输入 'c:memcachedmemcached.exe -d install' 安装
    3. 再输入: 'c:memcachedmemcached.exe -d start' 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
    4.下载php_memcache.dll,请自己查找对应的php版本的文件
    5. 在C:winntphp.ini 加入一行 'extension=php_memcache.dll'
    6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

    二.连接Memchache

    1. 终端:telnet 127.0.0.1 11211

    2. PHP:

    ; session.save_handler=files
    session.save_handler=memcache

    ; session.save_path="E:xampp mp"
    session.save_path="tcp://127.0.0.1:11211"

    相关的连接:

    http://php.net/manual/zh/book.memcached.php

    http://www.jb51.net/article/22065.htm

    三.测试代码

    <?php
    session_start();
    if (!isset($_SESSION['session_time'])) {  
     $_SESSION['session_time'] = time();
    }
    echo "session_time:".$_SESSION['session_time']."<br />";
    echo "now_time:".time()."<br />";
    echo "session_id:".session_id()."<br />";
    ?>

    保存上面代码(注意替换域名和IP),分别放在两台服务器的web目录下,打开两个浏览器标签,先后访问两个地址,如果两个页面输出的session_time后的时间戳和session_id是一样的话就说明已经OK了。

    需要注意的是,需要cookie保存session_id,有两种方法:

    1.利用COOKIE存放session_id();

    域名一文件php代码:
    <?php
    session_start();
    setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".session.com");
     $_SESSION['user_name'] = '梁山良民';
    echo $_SESSION['user_name'];
    ?>
    域名二文件php代码:
    <?php
    session_destroy(); 
    session_id($_COOKIE['session_id']);
    session_start();
    echo $_SESSION['user_name'];
    ?>
    2.利用php.ini 的session.cookie_domain
    备注:这里是用php代码实现不需要修改php.ini的配置文件;如果有需要你可以在php.ini里面修改配置文件(该情况下就不需要改段代码:ini_set("session.cookie_domain",'session.com');)
    域名一文件php代码:
    <?php
    ini_set("session.cookie_domain",'session.com');//注:该参数必须在sesson_start()之上,否则将不会生效
    session_start();
    $_SESSION['user_name'] = '梁山良民';
    echo $_SESSION['user_name'];
    ?>
    域名二文件php代码:
    <?php
    ini_set("session.cookie_domain",'session.com');
    session_start();
    echo $_SESSION['user_name'];
    ?>
  • 相关阅读:
    程序猿小白博客报道
    UML
    mysql隔离级别相关
    mac使用相关笔记
    git相关
    maven相关
    springboot相关
    guava
    IDEA高效运用技巧
    spring事务相关
  • 原文地址:https://www.cnblogs.com/fuland/p/4135998.html
Copyright © 2011-2022 走看看