zoukankan      html  css  js  c++  java
  • memcached总结

    基于libenvent网络库,单线程,中心思想IO多路复用,http://www.cnblogs.com/daoluanxiaozi/p/3274925.html

    特点:

    1.基于键值对的缓存系统,储存字符串或者对象(需要实现serializable接口),协议简单,

    基于libevnent网络库,内置的内存管理, slab allocations,基于客户端的分布式;

    memcached间互不通信,//分布式靠客户端实现,-f 块大小增长因子

    内置的内存管理: memcached使用预申请内存并分组成特定块的方式,旨在解决内存碎片的问题。

    数据存储方式:slab allocations,有效的防止内存碎片,但会产生内存浪费

    数据过期方式:Lazy Expiration + LRU

     不会监控数据是否过去,get查看数据时间戳进行判断

    3.分配的内存用完,使用LRU算法 least recently Used

    4.支持cas操作,,set,add,replace,prepand,appand

    incr,decr

    5.cas和gets配合使用

    30天,内存最大2G,存储最大1MB

     客户端指定分布式hash算法,

    通过stats指令,查看缓存命中率

    6.一致性hash算法,添加或减少服务器,减少key的重新映射

    原理:将Hash函数的值域空间形成一个hash圆,服务器映射到圆上,整个圆按照顺时针方向组织

    ,然后使用相同的hash函数,计算出key的hash值并映射到圆上,按照顺时针方向,找到最近的服务器进行存储; 通过虚拟节点,避免服务器分部不均匀;

    6.分布式session

    Memcache的管理与性能监控
    可以通过命令行直接管理与监控也可通过nagios,cacti等web软件进行监控
    命令行:

      1. Shell>telnet 127.0.0.1 1211 //如果在启动时指定了IP及端口号,这里要作相应改动
        连接成功后命令 
      2. Stats:统计memcached的各种信息 
      3. Stats reset:重新统计数据 
      4. Stats slabs,显示slabs信息,可以详细看到数据的分段存储情况 
      5. Stats items:显示slab中的item数目 
      6. Stats cachedump 1 0:列出slabs第一段里存的KEY值 
      7. Set|get:保存或获取数据 
      8. STAT evictions 0:表示要腾出新空间给新的item而移动的合法item数目
  • 相关阅读:
    phpstorm+Xdebug断点调试PHP
    解决PHP curl https时error 77(Problem with reading the SSL CA cert (path? access rights?))
    Windows下安装并设置Redis
    PHP使用数据库的并发问题
    PHP 数组排序
    js 异常处理
    nginx php上传大文件的设置(php-fpm)
    第二章 基本数据类型:常见数据类型的方法
    第一章 python介绍、变量、数据类型、流程控制语句等
    python2.x和python3.x的区别
  • 原文地址:https://www.cnblogs.com/lelouchKOP/p/5785925.html
Copyright © 2011-2022 走看看