Redis的数据结构(入门篇-5种基本数据类型)

Java面试宝典评论55阅读模式
摘要

Redis是开源的基于内存的高性能key-value键值型非关系数据库。支持多种数据类型,可用作数据库、缓存、消息中间件等。

在介绍redis的数据结构之前呢,咱们先简单了解一下什么是Redis。

Redis是开源的基于内存的高性能key-value键值型非关系数据库。支持多种数据类型,可用作数据库、缓存、消息中间件等。

Redis支持5种基本数据类型:

String、Hash、List、Set、SortedSet

String

这里的字符串是一种动态字符串,底层实现有点类似于Java中的ArrayList,有一个字符数组,从源码可以看出Redis底层对于字符串的定义SDS(Simple Dynamic Strings)。
SDS由Redis的作者发明,用来代替C原生字符串的一种数据结构。
C语言字符串的缺陷
  • 低效获取字符串长度:获取字符串长度需要遍历整个字符串,直到\0为止,时间复杂度O(n)
  • 无法储存\0:字符串中一旦出现\0后面的字符就会被丢弃,导致字符串读取不完整
  • 字符串分配的内存大小是固定的,后续更改字符串需要重新分配内存。
SDS相比C有以下优点
  • 获取字符串长度快,时间复杂度O(1)
  • 存储内容无限制,不需要用\0结尾,二进制安全
  • 修改字符串不必重新分配内存。
注:Redis规定字符串长度不得超过512M

如果本篇文章有任何错误,请大家多多包涵批评指教,不胜感激!

我是壹知,感谢大家对本期文章的阅读,创作不易,各位的支持和认可是我最大的动力,如果觉得文章写的不错的话,就请各位点赞在看关注,我们下期见~
下载信息
最近更新2024-9-7
下载地址

评论  0  访客  0
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定