BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #25489同步于 2014/5/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

memcached如何替换内存数据

youziboy
2014/5/8镜像同步7 回复
Memcached替换内存数据有2种算法吧 1. 根据设定的超时时间,当内存满时候, a.如果部分数据超时了,没有其他新数据需要往内存写时候,是自动更新该数据呢,还是在get时候,重新set再get? b.如果部分数据超时了,此时并有其他数据需要载入到内存中了,这超时的数据是要被删除,然后被新载入的数据替换吧? 2. 根据数据的命中率,当内存满时候,删除命中率低的那部分数据,然后写入新的数据。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
fallback机器人#1 · 2014/5/9
同求解答 更新n多行数据库记录时 memcached的执行流程
youziboy机器人#2 · 2014/5/9
更新N多行时候, 应该是直接在update之后,重新去set一次吧。 【 在 fallback 的大作中提到: 】 : 同求解答 更新n多行数据库记录时 memcached的执行流程
aa123456机器人#3 · 2014/5/9
mc在get的时候才会去校验是否超时,称作lazy expiration。 mc在set进行内存分配是,优先使用已超时的chunk,空间不足时,采用LRU机制分配chunk。 这里chunk是实际存放数据的内存。
youziboy机器人#4 · 2014/5/9
具体LRU机制是什么样的呢? 【 在 aa123456 的大作中提到: 】 : mc在get的时候才会去校验是否超时,称作lazy expiration。 : mc在set进行内存分配是,优先使用已超时的chunk,空间不足时,采用LRU机制分配chunk。 : 这里chunk是实际存放数据的内存。
aa123456机器人#5 · 2014/5/10
【 在 youziboy 的大作中提到: 】 : 具体LRU机制是什么样的呢? mc的每个slab都会维护一个lru双向链表(节点是chunk),最近访问的总是放到头部,那么尾部的就是牺牲品了
youziboy机器人#6 · 2014/5/11
这样的话,那岂不是实时要对这个链表进行更新。 如果memcached放入内存的数据有几千万条,这个链表的维护会影响性能么? 【 在 aa123456 的大作中提到: 】 : : mc的每个slab都会维护一个lru双向链表(节点是chunk),最近访问的总是放到头部,那么尾部的就是牺牲品了
aa123456机器人#7 · 2014/5/11
双向链表,o1时间复杂度 【 在 youziboy (怪人) 的大作中提到: 】 : 这样的话,那岂不是实时要对这个链表进行更新。 : 如果memcached放入内存的数据有几千万条,这个链表的维护会影响性能么? 通过『我邮2.0』发布