栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis学习笔记(一):基本数据类型以及数据结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis学习笔记(一):基本数据类型以及数据结构

基本数据类型
  • String(字符串)
    • 数据结构
  • List
    • 数据结构
  • Hash
    • 数据结构
  • Set
    • 数据结构
  • Sort Set
    • 数据结构

String(字符串)

string 字符串(可以为整型、浮点型和字符串等,统称为元素)。

数据结构

String 的内部就是一个字符数组,Redis的字符串是动态字符串,是可以修改的字符串,它采用预分配的冗余空间的方式来减少内存的频繁分配,当字符串的长度小于1MB时,扩容都是加倍现有的空间。如果字符串的长度超过1MB,扩容时一次 只会多扩1MB的空间,需要注意的是字符串的最大长度为512MB。

List

list 列表(实现队列,元素不唯一,先入先出原则)。

数据结构

List数据结构是链表型的,类似于linkedList。所以它的插入效率非常高,时间复杂度为O(1)。它的查询效率较慢,时O(n)。

但其实Redis内部,list结构又不是一个简单的链表,因为linkedList的每一个节点都要保存上一个节点和下一个节点的指针,相对来说比数组型的列表更占空间。在Redis中,有一种压缩列表的存在zipList,它把少量的元素使用一个连续的内存空间,就像时数组一样,可以节省内存,而list结构就是由多个这种zipList串起来组成的,被称为快速链表quickList。

Hash

hash散列值(hash的key必须是唯一的)

数据结构

参考:https://blog.csdn.net/mccand1234/article/details/93411326

Set

set 集合(各不相同的元素)。

数据结构

redis的集合对象set的底层存储结构特别神奇,我估计一般人想象不到,底层使用了intset和hashtable两种数据结构存储的,intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)。是不是觉得用hashtable存储set是一件很神奇的事情。
set的底层存储intset和hashtable是存在编码转换的,使用intset存储必须满足下面两个条件,否则使用hashtable,条件如下:
1.结合对象保存的所有元素都是整数值
2.集合对象保存的元素数量不超过512个
参考地址:https://www.jianshu.com/p/28138a5371d0

Sort Set

有序集合

数据结构

https://www.cnblogs.com/reecelin/p/13368374.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号