Redis的五大数据类型

Redis的数据类型

Redis共有五种数据类型:String(key-value)、Hash(key-value)、List、Set、ZSet。

1、String

String是最常用的一种数据类型,普通的key-value存储都可以归为此类。一个key对应一个value,String类型是二进制安全的,这边以为着该类型可以接受任何格式的数据,如图像数据和Json对象等,是标准的key-value,一般来存字符串,整数和浮点数,value最多可容纳数据512MB。

使用场景:存储令牌、验证码、统计上线人数等。

2、Hash

Hash使用个String类型的field和value的映射表。Hash特别适合存储对象,相对于将对象的每个字段存成单个String类型,一个对象存储在Hash类型中会占用更少的内存空间,并且可以更方便的存取整个对象。Hash数据类型的value内部是一个HashMap,如果该Map的成员比较少,则会采用一维数组的方式来紧凑存储该Map,省去大量指针的内存开销。

使用场景:存储、读取、修改用户属性。

3、List

List是简单的字符串列表,一个链表结构,每个子元素都是String类型的双向链表,这样的List既可以作为栈,又可以作为队列,主要功能是push、pop、获取一个范围的所有值等,操作中key理解为链表名称。

使用场景:消息队列。

4、Set

Set数据类型是无序集合,Set是通过Hashtable实现,可以进行添加、删除和查找。对集合我们可以取并集、交集、差集。

使用场景:交集求共同好友、唯一性进行统计。

5、ZSet(Sorted Set)

ZSet与Set类型类似,区别是Set不是有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的。

应用场景:排行榜。

总结:

数据类型KeyValue
String正常的Key正常的Value
Hash正常的KeyHashMap(field,value)代表对象
ListKey是链表的名字每个子元素都是String类型的双向链表
SetKey是Set的名字String类型的无序集合
ZSetKey是ZSet的名字一列存Value,一列存顺序

版权声明:本文为T_chuxin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。