Memcached 缓存服务器

Memcached 缓存服务器



Memcached     高性能的分布式的内存对象缓存

    # yum install memcached
    # rpm -ql memcached
    # cat /etc/sysconfig/memcached   \\ 环境配置文件   在此修改 启动信息 注01
        PORT="11211"
        USER="memcached"
        MAXCONN="1024"           \\ 最大并发连接数
        CACHESIZE="64"            \\ 内存空间大小
        OPTIONS="-f 1.2"           \\ 手动指明 -f为1.2
    # systemctl restart memcached
    # netstat -tunlp                 \\ tcp udp 的11211端口都被监听
    # telnet localhost 11211          \\ 连接本地的 memcached 
        stats    \\ 显示统计命令
    # systemctl stop memcached
    # memcached -u memcached -vv         \\ 可以看到 chunk size 
        slab class   1: chunk size        96 perslab   10922          \\ 第一级的chunk size 大小96  有10922个
        slab class   2: chunk size       120 perslab    8738           \\ 第二级大小120             有8738个
    # memcached -umemcached -vv -f 1.1     \\ -f 指定为 1.1倍  为临时有效
    # memcached-tool 127.0.0.1              \\ 显示 工作状态信息
        #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
        1      96B        11s       1       1     yes        0        0    0

        1           表示slab class 的编号  第一类
        Item_Size   表示 chunk的大小为96B
        Max_age     缓存对象的生存时间 11s 就是 已经使用了多长时间了
        Pages       分配给slab的内存页数
        Count       slab内的记录数
        Full        slab内是否仍有空闲chunk
        Evicted     
    # systemctl restart memcached


  注: 

    ❶ memcached 基本参数
        -s 基于套接字访问
        -l 监听的地址
        -d 把memcached运行一个守护进程
        -u 以哪个用户运行memcached
        -m 使用的内存空间 默认64M
        -c 最大并发连接数 默认1024
        -p 监听tcp哪一个端口上 默认11211
        -U 监听udp哪一个端口上 默认11211 可以是0关掉udp
        -M 禁止使用lru算法清理老内存的
        -r 最大可允许使用的核心文件大小 在内核中调整 一般不需要调整
        -f 增长因子  默认为1.25倍  分配的每一类对象叫做内存chunk 多个同类叫一个slab class
        -v 详解格式显示
        -vv 更详细
        -i 显示许可证
        -t 用于提供的线程数 默认4个
        -b 等待队列的长度
        -B 协议类型 支持文本格式 和 二进制格式
        -S 简单认证安全层 

    ❷ memcached 其他参数 说明
        page          分配给slab用于再次分割为chunk的内存空间
        chunk         用于缓存缓存对象的空间
        slab class    特定大小的chunk组合而成的组
        Memcached     旁挂式缓存  旁路式缓存    NoSQL
        varnish       代理式缓存


实例 01 Tomcat节点 把会话保存在memcached上 已实现session server功能       \\ 基于Tomcat章节的 1 2 实验
        memcached 缓存 session id 实现 Tomcat session 保持

    ① 基于以上实验 一台 Nginx/Apache 做负载均衡 反代到后端 两台Apache服务器的80端口在反代到8080端口的Tomcat服务器
      暂时配置两台Memcached服务器与两台后端服务器为同一服务器 

    ② 两台Tomcat服务器配置 关键配置
      到此网站下载五个包
        https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration    代码托管站点
        https://repo1.maven.org/maven2/de/javakaffee/msm/
        https://repo1.maven.org/maven2/net/spy/spymemcached/
        https://repo1.maven.org/maven2/javolution/javolution/5.5.1/
            memcached-session-manager-2.3.2.jar
            memcached-session-manager-tc8-2.3.2.jar
            msm-javolution-serializer-2.1.1.jar
            spymemcached-2.12.3.jar
            javolution-5.5.1.jar
        # cd /usr/local/tomcat/lib
        # rz                      \\ 五个包 导入到此目录下   对于编译安装的Tomcat
        # vim /usr/local/tomcat/conf/server.xml
            <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"     \\ <Host 下 <Context 下 添加
                memcachedNodes="n1:192.168.10.10:11211,n2:192.168.10.13:11211"            \\ 两个memcached服务器
                failoverNodes="n1"
                requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
            />
        # catalina.sh configtest
        # catalina.sh start          \\ 访问 192.168.10.10 测试

    ③  两台Memcached 服务器配置         \\ 仅仅为此实验使用 关于Memcached详细资料参见 以上Memcached介绍
        # yum install memcached
        # systemctl restart memcached
        # netstat -tunlp                 \\ tcp udp 的11211端口都被监听
        # memcached-tool 127.0.0.1        \\ 显示 工作状态信息      配合 访问 192.168.10.10 测试




Teo

You must be logged in to post a comment