Redis基础数据结构

Redis总体来说是一个key-value的模型,但是value在Redis中存在几种不同的数据结

String:Redis 字符串数据类型的相关命令用于管理 redis 字符串值,最简单的数据结构

Hash:Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)

List:Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

Set:Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

Sorted Set:Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

使用实例对象伪代码来表示

String表示为:

  sKey:"1"

  如图所示,通过set和get对sKey设置值以及取值


Hash表示:

  hKey:{a:"1",b:"2"}

  hash类似于一个对象实例,下面通过hset和hget对hKey设置值以及取值,hKey表示一个对象,其中a为hKey的一个字段

 再次设置一个b属性,然后通过hgetall获取整个hKey的结构,结果类似于hKey:{a:"1",b:"2"},不过在Redis的返回中格式并非是json对象格式,如下图所示

List表示为:

  lKey:["1","2","3"........]

  List类似于一个List<String>对象,下面通过lpush和lrange对lKey设置值以及显示,lkey表示一个list


Set表示为:

  sKey:["1","2","3"........],Set类似于一个HashSet<String>对象,下面通过sadd和smembers对sKey设置值以及显示,skey表示一个set


Sorted Set表示为:

  zKey:[{value:"1",order:0},{value:"2",order:2}.....],类似于一个附加上排序字段的Set,下面通过zadd和zrange对sKey设置值以及显示,zkey表示一个Sorted Set

和Set一样,Sorted Set并不会存储相同值的数据,如下图所示

 以上便是Redis几大基础数据结构的简单使用

更多的Redis Command可参阅菜鸟教程https://www.runoob.com/redis/redis-tutorial.html

原文地址:https://www.cnblogs.com/TuringLi/p/12761363.html