优秀的商城网站首页设计公司实验室设计
我们之前提到过,redis中key只能是字符串类型,而value有多种类型。
redis中的数据结构有自己独特的实现方式能根据特定的场景进行优化
1. string(字符串)
内部编码:
- raw:最基本的字符串,类比我们平常使用的String
 - int:当value是一个整数时可能会直接使用一个int来存
 - embstr:短字符串,针对短字符串进行特殊优化
 
可以通过命令查看value的实际编码方式:
object encoding key

2. hash(哈希表)
内部编码:
- hashtable:哈希表,这里的hashtable并非Java中的hashtable,但实现思想大致相同
 - ziplist:压缩列表,hash表中元素比较少的时候会优化为ziplist节省空间
 
3. lsit(列表)
内部编码:
- inkedlist:链表
 - ziplist:压缩列表,同样链表中元素少时会优化为ziplist节省空间
 
4. set(集合)
内部编码:
- hashtable:哈希表
 - intset:集合中都是整数会优化为intset
 
5. zset(有序集合)
zset会额外存储一个score(权重,分数)用于排序
内部编码:
skiplist:跳表,跳表也是链表,每个节点上有多个指针域,通过这些搭配指针域的指向实现O(logN)的查询复杂度
