zoukankan      html  css  js  c++  java
  • memcached的认识

    <?php
    
    /*
    memcached概念:
        Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。
    
    操作流程:
    
        1、检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作
        2、如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现)
        3、每次更新数据库的同时更新memcached中的数据,保证一致性。
        4、当分配给memcached内存空间用完之后,失效数据首先被替换,然后再替换掉最近未使用的数据。
    
    
    内置的内存管理方式
        所有数据都保存在内存中,存取数据比硬盘快,当内存满后,通过LRU算法自动删除不使用的缓存,但没有考虑数据的容灾问题,重启服务,所有数据会丢失。
    
    
    memcached 存数据
        Set:添加一个新条目到memcached或是用新的数据替换替换掉已存在的条目 
        Add:当KEY不存在的情况下,它向memcached存数据,否则,返回NOT_STORED响应 
        Replace:当KEY存在的情况下,它才会向memcached存数据,否则返回NOT_STORED响应 
        Cas:改变一个存在的KEY值 ,但它还带了检查的功能 
        Append:在这个值后面插入新值 
        Prepend:在这个值前面插入新值 
    
    
    memcached 获取数据
        Get:取单个值 ,从缓存中返回数据时,将在第一行得到KEY的名字,flag的值和返回的value长度,真正的数据在第二行,最后返回END,如KEY不存在,第一行就直接返回END 
        Get_multi:一次性取多个值 
    
    
    memcached 删除数据
        Delete 
    
    
    需要注意:
        1.不能往Memcached存储一个大于1MB的数据.
        2.往Memcached存储的所有数据,如果数据的大小分布于各种chunk大小区间,从64B到1MB都有,可能会造成内存的极大浪费以及Memcached的异常.
        3.memcached的一个空间利用,以及安全
    
        内存分配机制:首先要说明的是Memcached支持最大的存储对象为1M。它的内存分配比较特殊,但是这样的分配方式其实也是对于性能考虑的,简单的分配机制可以更容易回收再分配,节省对于CPU的使用。
    
    
    */
        

     memcached 缓存原理:

  • 相关阅读:
    第三章:数据结构决定程序
    第二章:Rotate、变位词
    iOS常用宏定义
    去除重复的数据
    iOS开发者一些建设性的建议
    [iOS]应用内支付(内购)的个人开发过程及坑!
    UIDynamic(物理仿真)
    扇形进度
    iOS 之加密方式
    UIPresentationController
  • 原文地址:https://www.cnblogs.com/LF-place/p/10556591.html
Copyright © 2011-2022 走看看