发布于 2016-10-29 12:18:01 | 258 次阅读 | 评论: 0 | 来源: PHPERZ
SSDB ⽀支持三种数据类型, 别分是 KV(key-value), Hashmap(map), Zset(sorted set). 三种数据类型处于不同的命名区间, 所以不同类型的数据可以起相同的名字, 但不建议这么做.
KV 数据类型⽀支持基本的 set(), get(), del(), incr() ⼏几种操作. KV 数据类型主要⽤用于存储离散的, 之间没有关系(或者关系被忽略)的⼤大数据, 如图⽚片⽂文件, ⼤大段⽂文本等. ⼀一般 KV 类型都可以被 Hashmap 替代, 但 KV 会⽐比 Hashmap 性能⾼高⼀一些.
Hashmap 类型和 KV 功能相似, 可⽤用于存储⼤大体积的数据, 但不同的数据项在业务上处于某个集合. 并且, Hashmap 维护了⼀一个集合⼤大⼩小的计数.
Hashmap 中的数据项是 Key-value 的键值对, 并且按 Key 的字节数组顺序进⾏行排序.
如果数据需要经常被遍历, 则应该使⽤用 Hashmap 来替代 KV. 对于只添加, 不更新和删除的有排序需求的数据集合, 可以⽤用 Hashmap 来存储⽽而不需要使⽤用 Zset, 因为 Hashmap 会⽐比Zset 性能⾼高⼀一些.
Key 是按字节顺序排序的.
Zset 是⼀一种根据数据项的权重(score, 整数值)进⾏行排序的集合, Zset 集合中的数据项是唯⼀一,不可重复的. Zset 可以理解为关系数据中只有 ID 主键和整数 score 字段⼀一共两个字段的表.
因为 Zset 的排序特性, 所以可⽤用来存储排序列表, 如商品按价格的排序列表, 商品按上架⽇日期的排序列表, 等等. 每⼀一个排序列表对应⼀一个 Zset 集合.
Zset 不能⽤用来存储⼤大体积的数据, 因为它是⼀一种"索引"数据类型, 被索引的东⻄西(集合中的数据项)只能是 200 字节以内的字节数组(包括字符串).
Key 是按 score(64 位整数)的⼤大⼩小排序的.