php – 如果数据已满,memcached中的数据如何被替换,以及memcache
来自memcached wiki:
我有以下问题: >将清除哪些数据?是插入较旧的那个,还是最近最少使用的那个?我的意思是,如果最近访问的数据是d1,这是最老的插入和缓存已满,而替换数据将取代d1?
当memcached需要在内存中存储新数据,并且内存已满时,会发生什么:
> memcached搜索合适的*过期条目,如果找到,则替换该条目中的数据.哪个答案点3)数据不会立即删除,但是当应该设置新数据时,会重新分配空间 *请记住memcached如何处理内存:它分配??不同大小的块,因此您要在缓存中设置的数据大小在决定删除哪个条目时起作用.条目为2K,4K,8K,16K ……等,最大为1M. 所有这些信息都可以在in the documentation找到,所以请仔细阅读.正如@deceze所说,memcached并不保证数据在内存中可用,你必须为缓存未命中风暴做好准备.避免风暴的一个有趣的方法是设置一个随机偏移的过期时间,例如10 [0..10]分钟,这意味着一些项目将被存储10,其他项目将被存储20分钟(目标不是所有项目同时到期). 如果你想在缓存中保留一些东西,你必须做两件事: >一个预热脚本,要求缓存加载数据.所以最近总是使用它
无论你为memcached分配多少内存,它都只会使用它所需的数量,例如:它只分配实际使用的内存.但是,使用-k选项时,在启动memcached时会保留整个内存,因此无论是否需要,它总是分配全部内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |