redis(9):Redis 5种数据类型vs java类型

已经看完redis的5种数据结构(在redis 5之后,新增stream数据结构),作为java程序员,总想把redis的数据结构和java里的类型进行对比,遂成本文

一、数据结构对比

redis数据结构java数据结构
StringMap<String,String>
HashMap<String,Map<String,String>>
ListMap<String,List< String >> 里面list 有序链表
SetMap < String , Set< String >> 里面set元素不能重复且无序
zsetMap < String , Sort Set< String >> 里面 Sort Set 元素有序且不能重复

reids数据存储的结构统一都是 Key/Value 结果,而Key统一都是String类型的,即Key针对所有的Redis数据类型都是必须的,而通常所说的Redis的数据类型,指代的都是Value所存储的类型。

1.String字符串类型-类比Java中String类型

在这里插入图片描述

  • 相比Java中的类型,可以这样理解 Map<String,Object> ,Key是String类型的,Value是Java中所有的基本类型都可以。

  • 在Java中String类型的数字是可以和int,long,folat等类型相互转换的,所以在redis中String类型有时也可以作为Java中的整数或者浮点数类型使用

2.Hash散列类型-类比Java中的HashMap类型

在这里插入图片描述

  • 相比Java中的类型,可以这样理解 Map<String,Map<String,Object>> Key是外层Map的键,Value是外层Map的值;而在redis中Hash散列类型中的field是里层Map的键,redis中散列类型中真正的value是里层Map的值

3.List列表类型-类比Java中List类型

在这里插入图片描述

  • 相比Java中的类型,可以这样理解 Map<String,List> Key是String类型的,Value是Java中List类型的。特点也和Java中的List类型差不多,有序的,可重复的

4.Set集合类型-即Value(member)所存储的类型,类比Java中的HashSet类型

在这里插入图片描述

  • 相比Java中的类型,可以这样理解 Map<String,HashSet> Key是String类型的,Value是Java中Set类型的。特点也和Java中的Set类型差不多,无序的,不可重复的

5.有序集合类型-即Value(member)所存储的类型,类比Java中的TreeSet类型

在这里插入图片描述

  • 特点:有序的,不可重复的,即member是不可重复的,使用score维护成员的顺序,score是可以重复的

  • zadd命令如果添加已经存在的member对象,则使用新的score值更新member旧的score值

在这里插入图片描述

©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页