memcached知识点,实现session一致性

1 memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载,他通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态,数据库驱动网站的速度。Memcached是基于一个存储key-value对的hashmap,

2 memcached拥有一个简单的key value来存储守护进程,安装该服务后,应用程序需要通过编程方式才能使用该服务。很多编程语言都提供 了客户端的接口来与服务器进行交互

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性

3 客户端与memcached服务器交互

        Telnet localhost 11211

4 memcache:

        Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash表,Memcached自管理这些Hash表

5 安装并启动

yum install -y memcached
systemctl start memcached

   如果系统简略就用:

memcached -d -u root  -l 172.17.0.6 -m 2048 -p 12121

6 复制库到tomcat

        [root@localhost tmp]# docker cp lib.tar 054ff06cdda4:/tmp

        [root@054ff06cdda4 tmp]# tar xf lib.tar -C .

        [root@054ff06cdda4 tmp]# cp lib/* /apache-tomcat-7.0.61/lib/

        [root@dd29511abdfb conf]# pwd

        /apache-tomcat-7.0.61/conf

        [root@dd29511abdfb conf]# vi server.xml

                <!-- You should set jvmRoute to support load-balancing via AJP ie :

                <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

                -->

                <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

7  修改页面并重启tomcat 

        [root@054ff06cdda4 apache-tomcat-7.0.61]# vi webapps/ROOT/index.jsp

        <!DOCTYPE html>

        <!--<%@ page session="true" %>-->

        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

        <%

        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");

        request.setAttribute("year", sdf.format(new java.util.Date()));

        request.setAttribute("tomcatUrl", "http://tomcat.apache.org/");

        request.setAttribute("tomcatDocUrl", "/docs/");

        request.setAttribute("tomcatExamplesUrl", "/examples/");

        %>

        <html lang="en">

        <head></head>

        <body>

                SessionID:<%=session.getId()%>

                <br/>

                SessionIP:<%=request.getServerName()%>

                <br/>

                <h1>tomcat1 page</h1>

        </body>

        </html>

        [root@054ff06cdda4 apache-tomcat-7.0.61]# bin/catalina.sh start

8 关联memcached跟tomcat

        [root@dd29511abdfb conf]# vi context.xml

        增加

                <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

                memcachedNodes="n1:172.17.0.6:12121"

                sticky="false"

                lockingMode="auto"

                sessionBackupAsync="false"

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

                sessionBackupTimeout="1000"         transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

        ------------------------------------------

        需要注意的是:

        memcachedNodes="n1:172.17.0.6:12121"; 关联的memcached的节点及端口

        className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 表示引用的java类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值