Redis
怪兽吃糖果
这个作者很懒,什么都没留下…
展开
-
Redis数据结构(一):RedisObject、String(SDS)
RedisObject 所有的 Redis 对象 都有下面的这个头结构。不同的对象具有不同的类型 type (4bit)。同一个类型的 type 会有不同的存储形式 encoding (4bit)。为了记录对象的 LRU 信息,使用了 24 个 bit 来记录 LRU 信息。每个对象都有个引用计数,当引用计数为零时,对象就会被销毁,内存被回收。ptr 指针将指向对象内容(body)的具体存储位置。这样一个 RedisObject 对象头结构 需要占据 16 字节的存储空间。 struct Redis原创 2020-07-08 21:30:00 · 550 阅读 · 0 评论 -
Redis的淘汰策略
Redis的淘汰策略 当 Redis 内存超出物理内存限制(maxmemory)时,内存的数据会开始和磁盘产生频繁的交换(swap),使 Redis 的性能急剧下降。Redis 提供了配置参数 maxmemory 来限制内存超出期望大小。当实际内存超出 maxmemory 时, Redis 提供了几种可选策略(maxmemory-policy)来让用户自己决定该如何腾出新的空间以继续提供读写服务。 noeviction 不会继续服务写请求(del 请求可以继续服务),读请求可以继 续进行。原创 2020-06-29 23:03:14 · 176 阅读 · 0 评论 -
Redis的过期策略
过期策略 过期策略通常有以下三种: 主动删除 每个设置过期时间的key创建一个定时器,过期会立即清除。该策略可以及时清除过期的数据,对内存友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。 优点:立即清除过期的数据,对内存友好 缺点:消耗CPU资源 惰性删除 当访问key时,才判断该key是否已过期,过期则清除。该策略最大化地节省了CPU资源,却对内存不友好。极端情况下会出现大量的过期key没有再次被访问,无法清除,占用大量内存。 优点:基本不耗CPU资源原创 2020-06-29 21:53:13 · 152 阅读 · 0 评论