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)的参数来为成员排序,并且是插入有序的。
应用场景:排行榜。
总结:
数据类型 | Key | Value |
---|---|---|
String | 正常的Key | 正常的Value |
Hash | 正常的Key | HashMap(field,value)代表对象 |
List | Key是链表的名字 | 每个子元素都是String类型的双向链表 |
Set | Key是Set的名字 | String类型的无序集合 |
ZSet | Key是ZSet的名字 | 一列存Value,一列存顺序 |
版权声明:本文为T_chuxin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。