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等

  • 相关阅读:
    微信小程序购物商城系统开发系列-工具篇
    如何用js获取浏览器URL中查询字符串的参数
    Vue.js——vue-resource全攻略
    多个 ng-app 中 Controllers & Services 之间的通信
    前端分页功能的实现以及原理
    纯css实现轮播图
    最好的Angular2表格控件
    2017年要学习的三个CSS新特性
    Kafka数据安全性、运行原理、存储
    Hbase与hive集成与对比
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3773939.html
Copyright © 2011-2022 走看看