zoukankan      html  css  js  c++  java
  • MemCache

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像视频文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
    Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。
    Memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端连接和操作。

    特性和限制

    在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。
      Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程 
      最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 
      60*60*24*30控制 
      最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制 
      单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制, 
      它是默认的slab大小 
      最大同时连接数是200,通过 conn_init()中的freetotal进行控制,最大软连接数是1024,通过 
      settings.maxconns=1024 进行控制 
      跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式
    memcached是一种无阻塞的socket通信方式服务,基于libevent库,由于无阻塞通信,对内存读写速度非常之快。
      memcached分服务器端和客户端,可以配置多个服务器端和客户端,应用于分布式的服务非常广泛。
      memcached作为小规模的数据分布式平台是十分有效果的。
    memcached是键值一一对应,key默认最大不能超过128个字 节,value默认大小是1M,也就是一个slabs,如果要存2M的值(连续的),不能用两个slabs,因为两个slabs不是连续的,无法在内存中 存储,故需要修改slabs的大小,多个key和value进行存储时,即使这个slabs没有利用完,那么也不会存放别的数据。
    目前memcached支持C/C++、Perl、PHP、Python、Ruby、Java、C#、Postgres、Chicken Scheme、Lua、MySQL和Protocol等语言客户端。
  • 相关阅读:
    hdu 5007 水题 (2014西安网赛A题)
    hdu 1698 线段树(成段替换 区间求和)
    poj 3468 线段树 成段增减 区间求和
    hdu 2795 公告板 (单点最值)
    UVaLive 6833 Miscalculation (表达式计算)
    UVaLive 6832 Bit String Reordering (模拟)
    CodeForces 124C Prime Permutation (数论+贪心)
    SPOJ BALNUM (数位DP)
    CodeForces 628D Magic Numbers (数位DP)
    POJ 3252 Round Numbers (数位DP)
  • 原文地址:https://www.cnblogs.com/kaeloy/p/3419630.html
Copyright © 2011-2022 走看看