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 缓存原理:

posted @ 2019-03-19 09:30  时间掉飞机  阅读(152)  评论(0编辑  收藏  举报