• memcached缓存技术


    Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,

    分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

    简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度

    ①基于c/s架构,协议简单

    c/s架构,此时memcached为服务器端,我们可以使用如PHP,c/c++等程序连接memcached服务器。

    memcached的服务器客户端通信并不使用XML等格式,而使用简单的基于文本行的协议。

    因此,通过telnet也能在memcached上保存数据、取得数据。

    ②基于libevent的事件处理

    libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:

    Windows/Linux/BSD/Solaris 等操作系统的的事件处理。

    Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。

    ③内置内存存储方式

    为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。

    由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。

    另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。

    memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

    ④基于客户端的分布式

    memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。

    各个memcached不会互相通信以共享信息。

    那么,怎样进行分布式呢?这完全取决于客户端的实现。 如图:

    当然我们也可以使用hibernate的缓存机制。但memcached是基于分布式的,并可独立于网站应用本身,所以更适合大型网站进行应用的拆分。

    什么样的数据适合放入memcached中?

    什么样的数据适合放入memcached中?

    1.变化频繁,具有不稳定性的数据 (比如用户在线状态、在线人数..)

    2.门户网站的新闻等,觉得页面静态化仍不能满足要求,可以放入 到memcache中.

    什么样的数据不适合放入memcached中?

    (银行,股票,证券系统.) 过大的数据不能放入到memcache(优酷网.)

    小结如何决定是否使用memcached

    --如果是一个小网站,pv(人数和访问量)值不大,就不考虑使用memcached了

    --变化频繁,查询频繁,但是不一定写入数据库(适合memcached)

    --变化频繁, 一变化就要入库[比如股票,金融.](不适合memcached)

    --变化不频繁,查询频繁,不管如不入库,都比较适合memcached。

  • 相关阅读:
    Spring集成MyBatis
    UpdatePanel的简单用法(转)
    updatePanel导致JS失效的解决办法(转)
    sql面试题(学生表_课程表_成绩表_教师表)
    javascript深入理解js闭包
    T-SQL利用Case When Then多条件判断
    T-SQL排名函数
    DataTable字符串类型的数字,按照数字类型排序
    Sql 行转列问题总结
    行转列:SQL SERVER PIVOT与用法解释
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/7142751.html
Copyright © 2020-2023  润新知