零基础学习Redis(4) -- 常用数据结构介绍

我们之前提到过,redis中key只能是字符串类型,而value有多种类型。

redis中的数据结构有自己独特的实现方式能根据特定的场景进行优化

1. string(字符串)

内部编码:

  1. raw:最基本的字符串,类比我们平常使用的String
  2. int:当value是一个整数时可能会直接使用一个int来存
  3. embstr:短字符串,针对短字符串进行特殊优化 

可以通过命令查看value的实际编码方式:

object encoding key 

2. hash(哈希表) 

内部编码:

  1. hashtable:哈希表,这里的hashtable并非Java中的hashtable,但实现思想大致相同
  2. ziplist:压缩列表,hash表中元素比较少的时候会优化为ziplist节省空间

3. lsit(列表)

内部编码:

  1. inkedlist:链表
  2. ziplist:压缩列表,同样链表中元素少时会优化为ziplist节省空间

4. set(集合) 

内部编码:

  1. hashtable:哈希表
  2. intset:集合中都是整数会优化为intset

5. zset(有序集合)

 zset会额外存储一个score(权重,分数)用于排序

内部编码:

skiplist:跳表,跳表也是链表,每个节点上有多个指针域,通过这些搭配指针域的指向实现O(logN)的查询复杂度

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ting-yu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值