
关键词:
String
、Hash
、List
、Set
、Zset
Redis 提供了多种数据类型,每种数据类型有丰富的命令支持。
Redis 支持的基本数据类型:STRING、HASH、LIST、SET、ZSET
Redis 支持的高级数据类型:BitMap、HyperLogLog、GEO、Stream
使用 Redis ,不仅要了解其数据类型的特性,还需要根据业务场景,灵活的、高效的使用其数据类型来建模。
2020年6月24日大约 34 分钟
关键词:
String
、Hash
、List
、Set
、Zset
Redis 提供了多种数据类型,每种数据类型有丰富的命令支持。
Redis 支持的基本数据类型:STRING、HASH、LIST、SET、ZSET
Redis 支持的高级数据类型:BitMap、HyperLogLog、GEO、Stream
使用 Redis ,不仅要了解其数据类型的特性,还需要根据业务场景,灵活的、高效的使用其数据类型来建模。
关键词:
BitMap
、HyperLogLog
、Geo
、Stream
Redis 支持的高级数据类型:BitMap、HyperLogLog、GEO、Stream
使用 Redis ,不仅要了解其数据类型的特性,还需要根据业务场景,灵活的、高效的使用其数据类型来建模。
Bitmap,即位图,是一串连续的二进制数组(0 和 1),可以通过偏移量(offset)定位元素。由于 bit 是计算机中最小的单位,使用它进行储存将非常节省空间,特别适合一些数据量大且使用二值统计的场景。例如在一个系统中,不同的用户使用单调递增的用户 ID 表示。40 亿($$2^{32}$$ = $$410241024*1024$$ ≈ 40 亿)用户只需要 512M 内存就能记住某种状态,例如用户是否已登录。
Java 中的数据类型有两类:
String
、数组)Java 语言提供了 8 种基本类型,大致分为 4 类
基本数据类型 | 分类 | 比特数 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
boolean |
布尔型 | 8 位 | false |
{false, true} |
|
char |
字符型 | 16 位 | '\u0000' |
[0, $2^{16} - 1$] |
存储 Unicode 码,用单引号赋值 |
byte |
整数型 | 8 位 | 0 |
[-$2^7$, $2^7 - 1$] |
|
short |
整数型 | 16 位 | 0 |
[-$2^{15}$, $2^{15} - 1$] |
|
int |
整数型 | 32 位 | 0 |
[-$2^{31}$, $2^{31} - 1$] |
|
long |
整数型 | 64 位 | 0L |
[-$2^{63}$, $2^{63} - 1$] |
赋值时一般在数字后加上 l 或 L |
float |
浮点型 | 32 位 | +0.0F |
[$2^{-149}$, $2^{128} - 1$] |
赋值时必须在数字后加上 f 或 F |
double |
浮点型 | 64 位 | +0.0D |
[$2^{-1074}$, $2^{1024} - 1$] |
赋值时一般在数字后加 d 或 D |