从根上理解,一个 Redis 字符串为什么要设计的这么复杂!
2023-04-18 12:46:57 时间
Redis 的 9 种数据类型
Redis
中支持的数据类型到 5.0.5
版本,一共有 9
种。分别是:
- 1、Binary-safe strings(二进制安全字符串)
- 2、Lists(列表)
- 3、Sets(集合)
- 4、Sorted sets(有序集合)
- 5、Hashes(哈希)
- 6、Bit arrays (or simply bitmaps)(位图)
- 7、HyperLogLogs
- 8、 geospatial
- 9、Streams
虽然这里列出了 9
种,但是基础类型就是前面 5
种。后面的 4
种是基于前面 5
种基本类型及特定的算法来实现的特殊类型。
而在 5
种基础类型之中,又尤其以字符串类型最为常用,且 key
值只能为字符串对象,所以要想深入的了解 Redis
的特性,字符串对象是首先需要学习的。
五种基本数据类型之字符串对象
Redis
当中有五种基础数据类型,而字符串对象又是最重要最常用的一种类型。
二进制安全字符串
Redis
是基于 C
语言进行开发的,而 C
语言中的字符串是二进制不安全的,所以 Redis
就没有直接使用 C
语言的字符串,而是自己编写了一个新的数据结构来表示字符串,这种数据结构称之为:「简单动态字符串(Simple dynamic string),简称 SDS
」。
什么是二进制安全的字符串
在 C
语言中,字符串采用的是一个 char
数组(柔性数组)来存储字符串,而且字符串必须要以一个空字符串