zoukankan      html  css  js  c++  java
  • Memcached缓存框架

    开发基于BS模式的程序,都有报表模块,那么如何开发报表模块。

    1.定时发布报表数据到指定的临时表(可能是定时任务)

    2.用户通过HTTP请求后台,访问临时表,查询报表数据

    3.增加memcached缓存,再次访问是直接访问缓存。

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

    基于事件机制,异步的

    可以很好的支持水平的扩容,各个节点直接不会相互通信

    Memcached主要的cache机制是LRU(最近最少用)算法+超时失效 :一种内存的模拟的数据结构-链表

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

    memcached原理:基于内存的缓存分布式系统,基于libevent(epoll)或者的事件机制,保证非阻塞的网络IO,内部数据结构采取链表,Hash索引。内存管理图:分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合)

    memcached根据收到的数据的大小,选择最适合数据大小的slab(图2)。 memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk, 然后将数据缓存于其中

    看到这里,总结Memcahed有两点:对于内存的管理基于LRU进行管理,对于内存的分配测试基于上述图,减少内存碎片。同时多个Memcached之间不可通信,实现memcahed的

    分布式,基本在客户端实现,采用特定的分配算法。(大部分的内存管理基本都是这种方式比如数据库等)

    参考:http://kb.cnblogs.com/page/42731/

    redis,ECCAHED等

  • 相关阅读:
    用jQuery写的一个简单的弹出窗口(IE7\IE8\FF3)
    live write test
    sql2
    查询所有表索引
    java初学问题记录(2012.02.092012.02.16)
    SQL
    centso7网卡bond
    vmware模板
    Dockerfile参考
    Docker简单介绍
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3773939.html
Copyright © 2011-2022 走看看