本实验的目标是搭建memcached服务器,验证测试网站客户端如何

连接上memcached服务器,并用集群来验证session会话ID



一、前期准备工作,准备两台服务器,一台做memcached服务器(A:4.123),

      一台做网站服务器(B:4.124)

    1、在A上安装软件: yum -y install memcached.x86_64      telnet(远程服务器测试用)

    2、在B上配置安装LNMP环境


二、在服务器A上的操作

  1、配置配置文件:vim /etc/sysconfig/memcached 

     PORT="11211"                // 服务端口号

     USER="memcached"

     MAXCONN="1024"          //最大连接数

     CACHESIZE="64"          //存储空间的大小

     OPTIONS=""                //可选参数配置

 2、启动服务,设置开机自启动:

    systemctl start memcached.service

    systemctl enable memcached.service

 3、连接,简单的语句测试

     telnet    127.0.0.1    11211   //在shell下连接数据库

    验证是否能读写:

       set name 0 180 3 //新建name变量,不压缩、存活180秒、3个字符长度

      123                     //输入变量的内容

      STORED

      get name    //读取name变量的值

      VALUE name 0 3

      123                      

      END

 4、memcached一些简单的语句:

        add--新建(不覆盖掉以前的内容)  set--新建 (会覆盖掉以前的内容)

        append--追加(往已有的变量追加内容)     flush_all--清空所有的内容

       

三、在服务器B上的操作

   1、在B上安装好nginx、php、mariadb

       详细安装参考我其它的实验,在上面安装软件并配置好配置文件

      安装:yum -y install php-pecl-memcache.x86_64,让php文件可以连接memcached数据库

      在php文件里面填上A服务器的IP地址信息和端口号:mem.php文件

      

            $memcache=new Memcache;

            $memcache->connect('192.168.4.123',11211) or die ('could not connect!! ');  //连接数据库

            $memcache->set('key', 'test');                  //写入数据

            $get_values=$memcache->get('key');      //读取数据

            echo $get_values;                                  //在页面上显示

      ?>

  2、在服务器A上验证:http://192.168.4.124/mem.php,出来"test"则是说明验证成功


四、memcached中session会话

   1、准备两台服务器java+tomcat(2.100和2.200)  //可参考我其它的实验

         准备一台代理服务器,用nginx来做代理,我这里用服务器A来做代理,

         在上面安装nginx,并配置web集群,用真机做客户端来访问。

   2、 sid     Session:用户账户,密码,访问历史等。

          cookie:存放id号 ,下次直接登陆,不需要输入用户名和密码

  3、把测试页面分别放在两台默认网站的根目录下  :test.jsp,在客户端测试,得到不同的id

      

             

                 

                     <%String s = session.getId();%>

                     <%=s%>

                   

tomcatA

                 

           

     

    2.100:     E8912319C717E184712FDF56F428176A        tomcatA 

    2.200:    9C842947128B1DDE593E5B30D425E2A6       tomcatB  

        从上面可以看到,得到不同的ID号,如何解决这问题呢,

        让tomcat读写用户信息都在memcached上

4、修改配置文件:vim /usr/local/tomcat/conf/context.xml,增加下面的配置

     

        memcachedNodes="mem1:192.168.2.123:11211"

        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

        transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>


    把上面的地址改成memcached的地址,我这里用的IP是192.168.2.123(A)

5、验证:http://www.test.com/test.jsp

    得到的结果是:

    D3866D1BC10489BC58961E3732D63863-mem1        tomcatB 

     D3866D1BC10489BC58961E3732D63863-mem1        tomcatA 

    可以看到,在上面的验证中,虽然服务器换了,但是其ID号是没变的