Redis数据类型

359 阅读2分钟

引言:更多相关请看 Java缓存
edis的Value支持5种数据类型,string、hash、list、set、zset(sorted set);

string

String类型是最简单的类型,一个key对应一个value,项目中主要利用单点登录中的token用string类型来存储;

hash

Hash类型中的key是string类型,value又相当于一个map(key-value),针对这种数据特性,比较适合存储对象,在项目中由于购物车是用redis来存储的,因为选择redis的散列(hash)来存储;

list

List类型是按照插入顺序的字符串链表(双向链表),主要命令是LPUSH和RPUSH,能够支持反向查找和遍历,如果使用的话主要存储商品评论列表,key是该商品的ID,value是商品评论信息列表。

set

Set类型是用哈希表类型的字符串序列,没有顺序,集合成员是唯一的,没有重复数据,底层主要是由一个value永远为null的hashmap来实现的。 我们的电商项目中没有用到这个数据类型。这个应用场景一般存储一个列表数据,但列表里面又不希望出现重复数据,比如微博应用中,可以将一个用户所有关注的对象放在一个集合中,将其所有粉丝存在一个集合,这样我们就可以实现两个人的共同好友、共同关注等需求。

zset

zset(sorted set)类型和set类型基本是一致的,不同的是zset这种类型会给每个元素关联一个double类型的分数(score),这样就可以为成员排序,并且插入是有序的。这种数据类型如果使用的话主要用来统计商品的销售排行榜,比如:items:sellsort 10 1001 20 1002 这个代表编号是1001的商品销售数量为10,编号为1002的商品销售数量为20。