1、string

redis的String类型到底存的是什么?

redis的存储是二进制安全的,不管什么类型的数据,都会转换成二进制数字节组进行存储,当取数据时,取出来的也是二进制字节数组,然后在客户端对数组进行转换。

数据的长度是字节长多,如:k1:99,长度就是2,k2:a,的长度就是1.一个中文字符占用3个字节(编码为utf-8时),如果编码为GBK时,一个中文占2个字节。

redis对字符串数字类型进行递增操作时,首先会识别出这个value是数字类型,然后进行数值的操作,同样,存储结构也是字节数值。

使用场景:

redis 如何存储数组 redis存储字节数组_数据

 

redis 如何存储数组 redis存储字节数组_redis_02

抢票逻辑:

redis 如何存储数组 redis存储字节数组_redis_03

如上图,bigmap是一个非常重要的数据结构,他说通过位运算的一种方式来对数据进行标记,它的优势:1.占用空间少,2.性能高,3.操作比较方便,有很方便的api进行与、或等操作。应用场景:统计、权限控制、占位等

 

list:

list其实相当于我们经常提到的双向链表结构,但list不仅仅只能做链表的功能,他还可以实现栈、队列、数组的能力。

redis 如何存储数组 redis存储字节数组_数据_04

hash:

 

redis 如何存储数组 redis存储字节数组_数组_05

 

set

redis 如何存储数组 redis存储字节数组_redis_06

 

sortset

 

redis 如何存储数组 redis存储字节数组_数组_07

跳跃表。。。。未完。。。。待完善。。。。