Redis储存结构

Redis怎么储存的

 这个redisDb是数据库对象 里面的其他字段忽略了 然后里面有个dict列表(字典列表)

我们随便来看一个redisObject

 区分一下子啊 他这个dict里面没有存redisObject的对象 也没有存dict对象 它只是存了个数据指针

你看那个redis每个底层编码 抠搜的 这块要是再保存一份都浪费回去了

过期键

Redis数据都可以设置过期键,这样到了一定的时间,这些对象就会自动过期并回收。这些过期键没有和一般键存放在一起

错误的:啊 这存的也是指针 这个dict和expires里面存的都是key 都是同一份数据 虽然画是这么画的但实际上两个dict的key都能找时间戳和value(通过指针) 

这两个dict里面存的是key对象的指针(也就是String对象的指针)  value一个是任意对象 一个是timestamp 这个key是会在两个dict复用的 所以直接用指针

我们之前说的对象虽然有的是key-value结构 但是不代表这里的key-value结构是一个对象 这里的key是一个string对象 value又是一个对象  

SET a b,这个数据的存储结构是怎样的?

Redis储存引擎里面有一个dict 把a放在对应偏移量上 然后再把b作为它的对应value储存

SET a 100 ex 60之后,调用TTL a,此时这个过期信息是存储在哪里的?
直接把这个key对象指针 放到expires里面 然后再把时间戳作为value塞进去 

猜你喜欢

转载自blog.csdn.net/chara9885/article/details/132180036