memcached简析

一. memcached简介

     memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in      speeding up dynamic web applications by alleviating database load.

     (由 LiveJournal旗下的Danga Interactive研发)

        #高性能,分布式缓存系统

    

     缓存服务器:

         缓存:cache,无持久存储功能;

         bypass缓存 # 旁挂式缓存

         k/v cache,仅支持存储流式化数据;

        

     特性:

         k/v cache:仅可序列化数据;存储项:k/v (key:value)

         智能性一半依赖于客户端(调用memcached的API开发程序),一半依赖于服务端;

         分布式缓存:互不通信的分布式集群;

         分布式系统请求路由方法:取模法(对机器数量取模来决定发往哪台机器),

                        一致性哈希算法(顺时针哈希环);

         算法复杂度:O(1)

         清理过期缓存项:

             缓存耗尽:LRU

             缓存项过期:惰性清理机制

                #即会定期检查缓存,当缓存失效时候并不做清理,而是有新缓存写入时

                候,直接覆盖原有的旧缓存内容

二. 安装配置:

             由CentOS 7 base仓库直接提供:

             监听的端口:

                 11211/tcp, 11211/udp

        

             主程序:/usr/bin/memcached

             配置文件:/etc/sysconfig/memcached

            wKioL1gUkfPg_QObAAA9N3RpIOo837.png-wh_50

             Unit File:memcached.service

             管理工具:memcached-tool

             协议格式:memcached协议

                 文本格式

                 二进制格式


三.memcache 命令详解

        详细协议帮助 :  /usr/share/doc/memcached-1.4.15/protocol.txt

         命令:

             统计类:stats, stats items, stats slabs, stats sizes

             存储类:set, add, replace, append, prepend

             命令格式:<command name> <key> <flags> <exptime> <bytes>

                            额外信息  过期时间  大小

                   <cas unique>        #回车后才能输入值

    

                key    key 用于查找缓存值

                flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息

                   # 默认用1 即可

                expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永

                远)

                bytes 在缓存中存储的字节点

                value 存储的值(始终位于第二行)

    

             检索类:get, delete, incr/decr

             清空:flush_all

        

         示例:

             telnet> add KEY <flags> <expiretime> <bytes> \r

             telnet> VALUE参数 用法

        

                 wKiom1gUkfHBKxIaAAAPuoGTe3o781.png-wh_50

         memcached程序的常用选项:

             -m <num>:Use <num> MB memory max to use for object storage; the

                default is 64 megabytes.

             -c <num>:Use <num> max simultaneous connections; the default is 1024.

             -u <username>:以指定的用户身份来运行进程;

             -l <ip_addr>:监听的IP地址,默认为本机所有地址;

             -p <num>:监听的TCP端口, the default is port 11211.

             -U <num>:Listen on UDP port <num>, the default is port 11211, 0 is off.

            wKioL1gUkfLRK0NEAAEYqJnIHBY380.png-wh_50

             -M:内存耗尽时,不执行LRU清理缓存,而是拒绝存入新的缓存项,直到有多余的空

                间可用时为止;

             -f <factor>:增长因子(内存分块的大小增长倍数);默认是1.25;

             -t <threads>:启动的用于响应用户请求的线程数;

            

             memcached默认没有认证机制,可借用于SASL进行认证;

             SASL:Simple Authentication Secure Layer

    

 三.   API:

     php-pecl-memcache

     php-pecl-memcached

     python-memcached

     libmemcached

    #此工具包中包含多个memcache的命令行管理工具

     libmemcached-devel

    

     命令行工具:

     memcached-tool  SERVER:PORT  COMMAND

        ————————————————-

        [root@localhost ~]# rpm -ql libmemcached

        /usr/bin/memaslap

        /usr/bin/memcapable

        /usr/bin/memcat

        /usr/bin/memcp

        /usr/bin/memdump

        /usr/bin/memerror

        /usr/bin/memexist

        /usr/bin/memflush

        /usr/bin/memparse

        /usr/bin/memping

        /usr/bin/memrm

        /usr/bin/memslap

        /usr/bin/memstat

        /usr/bin/memtouch

        ————————————————–

    


四. 利用 telnet 管理memcache 示例

        1. yum install telnet

        –> telnet localhost 11211

        stats:

        

          

              wKiom1gUkfKh9dgRAAA-6iEV5Kc557.png-wh_50


五. nginx 对memcache 的支持

        所需模块:  ngx_http_memcached_module

            Syntax: memcached_bind address [transparent] | off;

            Default: —

            Context: http, server, location

                #用于绑定 memcache 服务器

        

            Syntax: memcached_pass address;

            Default: —

            Context: location, if in location

                #绑定memcache 集群

            eg:

            server {    

            location / {        

                set $memcached_key "$uri?$args";

                    #将指定的key 放入memcache 生成缓存;

                    memcached_pass host:11211;

                    error_page     404 502 504 = @fallback;

                    }    

        

                location @fallback {        

                    proxy_pass  http://backend;    

                    }

             }

             ============================================================

原创文章,作者:ldt195175108,如若转载,请注明出处:http://www.178linux.com/55611

(0)
上一篇 2016-10-29 20:01
下一篇 2016-10-29 20:29

相关推荐

  • 文件查找

        Linux上的所有资源都以文件的形式存在,如果是手工查找的话,势必会浪费太多的时间,这里推荐俩款大家用于查找的工具。 文件查找    文件查找经常用到的俩款软件,locate和find    二者区别 locate:1) 非实时查找;    &nbsp…

    Linux干货 2016-08-18
  • Tomcat安装及简单配置

    安装jdk: [root@stu ~]# rpm -ivh jdk-7u9-linux-x64.rpm #此为安装官方的版本(c6已经使用了openjdk)报错不用关心 查看安装位置: [root@stu ~]# rpm -ql jdk 目录: [root@stu&nb…

    Linux干货 2016-07-19
  • 网络管理2

    六、配置网络     跨网络通信:路由     路由分类:         主机路由         网络路由 &nbs…

    Linux干货 2016-09-09
  • 文件共享服务之NFS

    文件共享服务之NFS 文件共享服务之NFS 一、什么是NFS及NFS的工作流程 二、NFS发展及问题 三、NFS简单部署 一、什么是NFS及NFS的工作流程 NFS(Network File System,网络文件系统)  NFS是借助于RPC来实现功能的 RPC:(Remote  Procedure  Call  p…

    Linux干货 2016-04-19
  • nginx

    nginx: master/worker master:配置文件分析和加载、管理worker、平滑升级; worker:处理用户请求; cache loader, cache manager:缓存加载和缓存管理 user Syntax: user user [group];        …

    Linux干货 2017-06-19
  • linux基础之lvm操作流程

    linux基础之lvm基本操作流程    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装L…

    2017-03-19