• 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等

  • 相关阅读:
    创建异步Web服务
    MCAD考试计划
    微软面试题
    Reborn
    Qt项目注意事项
    在ASP.Net中两种利用CSS实现多界面
    为ASP.NET控件添加常用的JavaScript操作
    用Split函数分隔字符串
    Microsoft .NET Pet Shop 4.0
    搞定QString,string,char*,CString的互转
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3773939.html
Copyright © 2020-2023  润新知