(二)、Redis的基本数据结构---Redis设计与实现读书笔记

一、简介

Redis 有 5 种基础数据结构为:string (字符串)、list (列表)、 hash (字典)、和 set (集合)、zset (有序集合)

 

容器类型数据结构通用规则:

  1. create if not exists:如果容器不存在,那就创建一个,再进行操作。比如 rpush 操作刚开始是没有列表的,Redis 就会自动创建一个,然后再 rpush 进去新元素。

 

  1. drop if no elements:如果容器里元素没有了,那么立即删除元素,释放内存。这意味着 lpop 操作到最后一个元素,列表就消失了。

 

数据过期时间:

Redis 所有的数据结构都可以设置过期时间,时间到了,Redis 会自动删除相应的对象。

注意:

  1. 过期时间是以对象为单位,比如一个 hash 结构的过期是整个 hash 对象的过期,而不是其中的某个子 key。
  2. 如果一个字符串已经设置了过期时间,然后你调用了 set 方法修改了它,它的过期时间会消失。

 

二、string(字符串)

Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,数据结构使用的是数组,采用预分配冗余空间的方式来减少内存的频繁分配。

 

如图中所示:

  1. 内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。
  2. 当字符串长度小于 1M 时,扩容都是加倍现有的空间;
  3. 如果

你可能感兴趣的:(redis,基本数据结构,redis)