zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    补:冲刺Day1
    需求规格说明书2.0
    补:冲刺Day2
    冲刺Day3
    Base64上传图片
    C#怎样通过url调用接口
    js键盘控制DIV移动
    利用MVC的过滤器实现url的参数加密和解密
    在.net MVC中异步上传图片或者文件
    mvc url路由参数的加密和解密
  • 原文地址:https://www.cnblogs.com/TuringLi/p/12761363.html
Copyright © 2011-2022 走看看