Linux memcached

Linux memcached
    memcached是一套分布式的高速缓存系统,使用key-value来缓存数据,是由LiveJournal的Brad Fitzpatrick开发,目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。memcached缺乏认证以及安全管制,所以应该将memcached服务器放置在防火墙后。
    一般memcached会和mysql数据库结合从而提高响应速度;memcached可以将SQL语句进行hash之后作为key,将查询到的数据作为value,然后存储在memcached的内存中,进而提高查询速度;
    memcached特点:
        协议简单:使用基于文本格式的协议;
        基于libevent进行事件处理
        基于内存进行数据存储:基于LRU算法进行缓存的存储;
        memcached支持互不通信的集群:分布式
    安装:编译安装
        出现下面错误时才进行这些操作:
            安装前准备:在官网下载libevent
                wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
                tar xf libevent-2.1.8-stable.tar.gz
                cd libevent-2.1.8-stable/
                ./configure
                make & make install
                ln -sv /usr/local/lib/libevent-2.1.so.6  /usr/lib64/libevent-2.1.so.6
        tar xf memcached-1.4.15.tar.gz
        cd memcached-1.4.15/
        ./configure --prefix=/usr/local/memcached  或
        ./configure --prefix=/usr/loca/memcache --with-libevent=/usr/local/lib/libevent-2.1.so.6     感觉这个就算指定了也没什么用
        make
        make install
    运行memcached:
        cd /usr/local/memcached/bin
        ./memcached -d -u root
    帮助信息:./memcached -h
    安装时的报错:
        checking for libevent directory... configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/
        If it's already installed, specify its path using --with-libevent=/dir/
    可以通过下面的图片来对memcached进行操作:
        首先需要用telnet登录监听在11211端口的memcached:
            telnet localhost 11211
 


 


    图片来自:https://blog.csdn.net/qq_14927217/article/details/73692582
    数据查找过程:
        memcached是一个旁挂式缓存,当应用程序第一次到mysql查找数据时,mysql会直接将数据返回给应用程序,接着由应用程序自己将刚在mysql返回给自己的数据保存至memcached中,然后将数据返回给客户端;当以后客户端请求相同的数据时,应用程序会首先查找memcached,如果memcached还存有这个数据,就直接返回给应用程序,从而响应给客户端,如果缓存不存在了,就还要自己去mysql查找,然后再存一份到memcached中,再返回给客户端;然后以此类推!
    memcached的内存存储:
        机制:slab allocation,整理内存以进行复用;
            工作方式:slab allocator
                memcached会将自己的内存分成一些固定大小的块(chunk),然后将大小相同的块再分成组;比如:分100个2字节的块,再分200个4字节的块,再分400个4k的块,然后将这些相同大小的块再分成组(slab class);
                page:分配给slab用于进行分割为chunk的内存空间;
                chunk:用于存储缓存对象的空间;
                slab class:特定大小的chunk组合而成的组空间;
            Note:在memcached启动时,这些内存空间就已经被切割好了,当有缓存数据需要进行缓存时,就可以直接存储了,节省了很多时间;但是无法避免内存碎片;
            可以通过./memcached -u root -vv来查看chunk的大小;
            可以通过./memcached -u root -vv -f number来设置chunk的增长因子的大小;增长因子指的是按大小排序,后一种chunk的大小是前一种chunk大小的多少倍;默认为1.25倍,且最小的chunk的大小为96字节;
    状态查看:
        ~]# memcached-tool 127.0.0.1
          #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
            1      96B        28s       1       1     yes        0        0    0
         标题解释:
            #:slab class的编号;
            Max_age:已缓存时长;
            Pages:分配个slab的内存页数量;
            Item_Size:chunk的大小;
            Count:slab中记录的缓存总数;
            full?:slab中是否还有空闲chunk;
            Evicted:缓存被清除之前的宽限存储时间;
            OOM:slab class无法存储的新数据的次数;
    使用memcached缓存Tomcat的session信息:
        简介:https://github.com/magro/memcached-session-manager/wiki
        1.拓扑结构:一台Centos7作为前端负载均衡器,两台Centos6作为后端的memcached和tomcat服务器;关于前端负载均衡的配置在上一篇博客中有具体演示,此处不在赘述!
        2.需要使用安装组件来支持这个功能:
            memcached-session-manager-${version}.jar
            memcached-session-manager-tc${6,7,8}-${version}.jar
            spymemcached-${version}.jar   序列化工具,能够将Tomcat的内存对象进行序列化以后存储在memcached的内存中;
            msm-javolution-serializer-${version}.jar
            javolution-${version}.jar
            组件下载地址:
                https://code.google.com/archive/p/memcached-session-manager/downloads
                http://repo1.maven.org/maven2/de/javakaffee/msm/
                https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
                http://www.java2s.com/Code/Jar/j/Downloadjavolution5431jar.htm
        3.将上述.jar包放置到$CATALINA_HOME/lib/中;
            cp memcached-session-manager-1.7.0.jar memcached-session-manager-tc7-1.7.0.jar  msm-javolution-serializer-1.7.0.jar javolution-5.4.3.1.jar spymemcached-2.11.1.jar /usr/share/tomcat/lib/
        4.添加配置内容:  不知道问什么使用tomcat8.5做这个操作不成功,所以接下来的都是在tomcat7中完成的,上面.jar包也是7版本的;使用yum直接安装tomcat7即可;
            vim conf/service.xml
                <Host name="www|mail.guowei.com" appBase="/data/webapps" autoDeploy="true">
                        <Context path="/apps" docBase="/data/webapps/ROOT">
                            #docBase要使用绝对路径
                                <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                            #memcached备份管理器的类名
                                    memcachedNodes="n1:192.168.80.131:11211,n2:192.168.80.134:11211"
                                #n1为主机标识,可以更改;
                                    failoverNodes="n1"
                                #指定备用主机节点
                                    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                                #指定忽略的数据类型
                          transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
                                #指定序列化工具
                                />
                        </Context>
                      </Host>
            Note:配置中提到的是两台memcached主机(n1:192.168.80.131:11211,n2:192.168.80.134:11211),此处只列出一端的配置,另一端几乎相同(不同之处已使用”|”标记),就不在赘述!
        5.启动tomcat服务:
            service tomcat start
        6.访问测试:
            http://192.168.80.139/apps
        Note:此配置是衔接上面一篇博客的,有些配置没有给出,具体请看上一篇文章;
    实现session server:
        常用架构示例:
            1.拓扑结构:
 


            2.流程:客户端访问某一网站的某一动态内容时,首先会经过负载均衡器的调度,将其调度至某一台后端的Tomcat服务器(TomcatA)上,然后Tomcat会将客户端的会话信息进行序列换,然后保存至后端的额memcached服务器中;如果此客户端在下一次访问此网站时,如果调度器将其调度至其他Tomcat服务器(TomcatB)上,Tomcat就会到memcached服务器中查找session信息,这样就实现了session共享;聪明的你已经发现,这个memcached服务器是一个单点,如果其发生故障,那么所有session信息都会丢失,所以我们需要搭建一个备份memcached服务器,以备不时之需!memcached备份服务器可以在主memcached故障时,顶替其继续工作,并且当Tomcat往主memcached服务器中写数据时,还会降数据再往备份memcached服务器中写一份,从而可以实现无缝衔接!
            3.配置过程:
                大写的略!!!
                因为配置跟上面的差不多!!!
              

            注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删;

转载于:https://www.cnblogs.com/guowei-Linux/p/11072857.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客18985 数字权重 (数学,快速幂)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/18985 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 小a有一个n位的数字&#xff0c;但是…

Science 封面:史上最小飞行器,有翼微芯片仅沙粒大小,可用于环境监测

来源&#xff1a;机器人大讲堂据最新一期《自然》杂志刊发的论文&#xff0c;西北大学的工程师为电子微芯片增加了一种新的能力&#xff1a;飞行。据了解&#xff0c;这种微芯片大概只有一粒沙子大小&#xff0c;另外它没有马达。相反&#xff0c;它在风中捕获飞行--很像枫树的…

牛客15324 用来作弊的药水

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15324 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 在一个风雨交加的夜晚&#xff0c;来…

由于这个现象,我们永远无法精确测量时间

几乎任何事物都可以作为时钟&#xff0c;只是有些时钟比其他的更好用而已。图片来源&#xff1a;Corinne Reid来源&#xff1a;环球科学2013年&#xff0c;物理学硕士研究生保罗埃凯尔&#xff08;Paul Erker&#xff09;仔细翻阅着教科书和论文&#xff0c;试图从中找到“时钟…

牛客15187 分元宵 (快速幂)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15187 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 s, v, w, p, A list(map(int, i…

“诺奖风向标”2021拉斯克奖公布:授予mRNA疫苗、光遗传学以及戴维·巴尔的摩...

拉斯克奖奖杯来源&#xff1a;科研圈当地时间 9 月 24 日晚间&#xff0c;有“诺奖风向标”之称的拉斯克奖&#xff08;Lasker Award&#xff09;公布了 2021 年获奖人名单&#xff1a;基础医学奖 授予为开发光遗传学技术做出突出贡献的卡尔戴瑟罗斯&#xff08;Karl Deisserot…

牛客14718 开心的涂刷

链接&#xff1a;https://ac.nowcoder.com/acm/problem/14718 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 一天小明同学拿着m种颜色的油漆去涂…

华为全新发布开源操作系统欧拉:覆盖数字基础设施全场景

来源&#xff1a;C114通信网&#xff08;C114-weixin&#xff09;作者&#xff1a;舒允文在华为全联接2021上&#xff0c;面向数字基础设施的开源操作系统欧拉&#xff08;openEuler&#xff09;全新发布。欧拉操作系统可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态…

牛客15499 Jxc军训(快速幂,逆元)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15499 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 在文某路学车中学高一新生军训中&…

《新一代人工智能伦理规范》发布

来源&#xff1a;科技部战略规划司9月25日&#xff0c;国家新一代人工智能治理专业委员会发布了《新一代人工智能伦理规范》(以下简称《伦理规范》)&#xff0c;旨在将伦理道德融入人工智能全生命周期&#xff0c;为从事人工智能相关活动的自然人、法人和其他相关机构等提供伦理…

Centos7搭建Redis,同一服务器启动两个端口的Redis

1、安装redis 【1】下载安装包 #准备安装文件夹 mkdir /usr/local/soft/redis #进入文件夹 cd /usr/local/soft/redis #下载安装包 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 【2】安装redis #解压tar zvxf redis-4.0.11.tar.gz#make之前要安装gcc yum -y …

牛客15555 1 + 2 = 3?

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15555 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 小Y在研究数字的时候&#xff0c;…

光遗传学离诺奖又双叒进一步!10天后谜底将揭晓 (盘点光遗传学近年来获奖记录)...

来源&#xff1a;brainnews距离2021年诺奖公布的日期&#xff0c;只有不到10天时间。2021年诺贝尔奖获奖得主名单将自2021年10月4日开始陆续公布。今年&#xff0c;光遗传学技术获奖的呼声依旧很高&#xff0c;Brainnews汇总了光遗传学技术近年来获奖的信息。当地时间 9 月 24 …

杂项:TMT(数字媒体产业)

ylbtech-杂项&#xff1a;TMT&#xff08;数字媒体产业&#xff09;TMT&#xff08;Technology&#xff0c;Media&#xff0c;Telecom&#xff09;&#xff0c;是科技、媒体和通信三个英文单词的缩写的第一个字头&#xff0c;整合在一起。含义实际是未来&#xff08;互联网&…

牛客18987 粉嘤花之恋(矩阵快速幂、斐波那契数列)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/18987 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 qn是个特别可爱的小哥哥&#xff0c…

新型智能头盔可快速评估患者中风的大小、位置和类型

来源&#xff1a;IEEE电气电子工程师 The proposed helmet uses electromagnetic waves to estimate the size and position of stroke inside a patients brain. FOS S.P.A./UNIVERSITY OF GENOA当有人中风了的时候&#xff0c;前期治疗的每一个瞬间都是至关重要的。理想情况…

美国空军把将人工智能纳入杀伤链列为最高优先事项之一

来源&#xff1a;航空简报 作者&#xff1a;张洋据airforcemag网站2021年9月21日刊文&#xff0c;2021年9月20日&#xff0c;美国空军部长弗兰克肯德尔&#xff08;Frank Kendall&#xff09;在空军协会于马里兰州国家港口举行的2021年空天网大会&#xff08;ASC21&#xf…

牛客14607 递推(矩阵快速幂构造)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/14607 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 JYM和XJ转眼就从小学上了高中。在…

2021年14项世界互联网领先科技成果发布

来源&#xff1a;桐乡发布9月26日下午&#xff0c;由国家互联网信息办公室、浙江省人民政府主办的2021年“世界互联网领先科技成果发布活动”在乌镇互联网国际会展中心乌镇厅举行。华为鸿蒙操作系统、北斗卫星导航系统等14项成果入选“世界互联网领先科技成果”&#xff0c;还有…

牛客15666 又见斐波那契(矩阵快速幂)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15666 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 输入描述: 第一行是一个整数T(1 ≤…