<返回更多

Redis常用的数据结构

2021-10-12    语霖
加入收藏
Redis常用的数据结构

 

redis常用的数据结构有

string

string 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任何数据,比如图片或者序列化的对象,一个redis中字符串value最多可以是512M。

value可以存储json格式,数值型等。

使用场景

string使用场景一般是存储简单的键值类型。比如用户信息,登录信息,配置信息等。还有一种用得比较多的是string的incr/decr操作,即自增、自减操作。调用它是原子性的,无论调用多少次,都一一计算成功。例如需要增减库存的操作。

尽管string的value可以存储很大,甚至500多MB的容量。但是在性能上来说,我们见谅存储value的值不要超过1M。

hash

hash是一个键值对集合,是一个string类型的key和value的映射表,key还是key,但是value是一个键值对(key-value)。类比于JAVA里面的 Map<String, Map<String, Object>>集合。

使用场景

比如需要有两层key的应用常见,通过删除一个key可以删除所有内容。例如一个商品有很多规格,规格里面有不同的值。

需要注意的是,经过测试,在性能上来说一般hash里面的第二层key,不要超过200个为佳。尽管hash里面的key-value能达到500多MB的存储容量。

list

list列表,它是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头(左边)或者尾部(右边),它的底层实际上是个链表。

使用场景

list可以使用左推、左拉、右推、右拉的方式。所以你可以使用list作为集合存储,比如存储某宝商铺里面的所有商品。

也可以用作轻量级别的队列来使用。左推左拉、右推右拉。

需要注意的是尽管redis可以使用推拉的队列模式,但是一定要注意场景。因为redis的队列是一种轻量级别的,没有队列重试、队列重放机制。消费完队列消息在redis代表已经删除了。

set

Redis的set是string类型的无序集合。

使用场景

如保存一些标签的名字。标签的名字不可以重复,顺序是可以无序的。

需要注意的是使用set一定不要存储大量的数据。value的值不宜过大,并且集合数量不宜过大。几百个集合的值,value不超过1MB为佳。

zset

zset(sorted set有序集合),和上面的set数据类型一样,也是string类型元素的集合,但是它是有序的。

使用场景

sortset的使用场景一般是排行榜之类的场景

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>