美文网首页
Redis数据结构与对象

Redis数据结构与对象

作者: 我是黄俊俊 | 来源:发表于2019-08-01 22:04 被阅读0次
  1. 了解常见的对象的数据结构及其实现的特点
  2. 掌握5种对象及其常见应用场景

1. Redis对象的数据结构

简单动态字符串:简单动态字符串是字符串对象的底层实现,其动态扩容,内存预分配,惰性空间释放,减少内存重分配次数


image.png



双端链表:双端链表是列表键对象的底层实现之一,模拟了双端队列。

image.png


字典:字典是集合对象和哈希对象的底层实现之一,redis的字典保存两个哈希表,一个平时使用,一个rehash时使用,并且采用渐进式rehash扩大/缩小容量,避免rehash时对服务器性能造成影响
image.png


跳表:跳表是有序集合对象的底层实现之一,节点的成员对象是一个指针,指向一个字符串对象,其字符串对象唯一,但是多个节点保存的分值却可以相同,所有节点按照分值从小到大排序,分值相同的节点按照字符串对象进行排序,redis采用有层数限制(最多5层)的跳表来实现有序集合,redis采用跳表而非红黑树等是因为其实现简单并且便于区间查找
image.png


整数集合:整数集合用于保存整数值,并且元素项较少时,作为集合底层实现之一,适合于数据项较少并且都为整数的集合对象,可以节约内存,并且可以保证不出现重复元素。
image.png



压缩列表:压缩列表适合于保存小整数和短字符串,并且列表项较少时,作为列表对象,哈希对象,有序集合对象的底层实现之一,可以节约内存

image.png

2. Redis对象

redis是一个键值对内存型数据库,键值对都是由对象组成,键都是字符串对象,而值可以是字符串对象,列表对象,哈希对象,集合对象,有序集合对象

  1. 字符串对象
  2. 列表对象:列表应用比较广泛,用于保存多个元素,可重复,有先后顺序,可以使用列表实现好友列表,浏览商品等等,实现阻塞队列等等
  3. 哈希对象:哈希对象特别适合用于存储对象,键为对象id,值为json数据,存储用户信息,商品信息,统计点赞数,商品浏览数等。
  4. 集合对象:和list相比,当你需要存储一个列表数据,又不希望出现重复数据时或者想要利用集合的交并补运算时如求共同好友,共同关注问题,共同喜好等等时,适合使用集合对象
  5. 有序集合对象:和set相比,sorted set增加了一个权重参数score,使得集合中的元素能够按score进行有序排列。当你想要对某个东西排名,如对直播间在线用户列表各种礼物排行榜,对文章热度排名等等,适合使用有序集合对象

相关文章

  • Redis专题

    1 数据结构与对象 1.Redis数据结构与对象——简单动态字符串2.Redis数据结构与对象——哈希3.Redi...

  • Redis设计与实现-笔记(一)

    数据结构与对象 Redis的底层数据结构,了解Redis的底层数据结构有助于我们更好的运用Redis。 SDS R...

  • 01-redis数据结构与对象

    3. redis数据结构与对象 redis对外支持数据结构 字符串 (string) 字符串列表(list) 字符...

  • redis对象

    本文对redis的对象进行概述,知识来源于《redis设计与实现》 我们可知,redis的用到的主要的数据结构有简...

  • 第 8 章(对象)

    Redis Object Redis 基于之前的那些数据结构创建了一个系统对象,这个系统包含字符串对象、列表对象、...

  • 1.4 字符串以及List底层实现

    Redis 并没有直接使用数据结构来构建键值对,而是基于这些数据结构创建了一个对象系统。 该对象保存与数据有关的三...

  • Redis设计与实现-笔记(二)

    数据结构与对象 跳跃表 跳跃表是有序集合的底层实现之一, 除此之外它在 Redis 中没有其他应用。 Redis ...

  • Redis源码及实战分析(一) 数据结构与对象

    根据国人黄俊宏先生建议的阅读顺序 redis源码的设计与解析这部分记录下redis的数据结构与对象 有些人觉得理论...

  • redis的设计与实现学习记录

    redis的学习分为以下几个部分 第一部分“数据结构与对象” redis里面数据库里面的每个键值对都是由对象组成的...

  • Redis 5种数据类型与11种编码方式

    1,redis核心对象结构 1)Redis object对象的数据结构,定义在src/server.h中。 2)c...

网友评论

      本文标题:Redis数据结构与对象

      本文链接:https://www.haomeiwen.com/subject/kzacdctx.html