前言
介绍Redis中最常用的五种数据类型:String,Hash,List,Set,Sorted_Set
一,String
Redis的String类型是按字节流进行存储,是二进制安全的。
为什么Redis不用字符流进行存储?
对于不同编程语言字符类型,整型,浮点等。所占字节数可能都不一样,使用二进制存储的好处就是不需要担心各种类型在不同场景中代表的字节数是不同,Redis作为一个中间件需要保证存储安全。通讯双方只需要制定相同的字符集进行编码和解码就能保证数据的一致性
Encoding的概念
127.0.0.1:6379> set k1 a
OK
127.0.0.1:6379> set k2 1
OK
127.0.0.1:6379> OBJECT encoding k1
"embstr"
127.0.0.1:6379> OBJECT encoding k2
"int"
我们可以看到对不不同的value值,对应的Encoding也不同,Redis引入Encoding的也是为了方便对value值的操作。如果对于“embstr”的类型直接可以用append对字符进行追加操作,对于“int”类型的可以直接incr/incrby 操作,如果互换对字符类型的incr/incrby,Redis会直接判定失败,而不会在内存中去转换的时候发现类型不对而抛出异常,这也是Redis高效的原因的一些细节。
int类型提供的Incr/Incrb