• Redis笔记


    Redis(Remote  Dictionary  Server)是一种非关系型数据库

    Redis 与其他 key - value 缓存产品有以下三个特点:

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。

    Redis 中有五种基本数据类型:

    String(字符串)

    • String(字符串) 最简单的类型,可以包含任意的数据,比如整数、浮点数、JSON 字符串等。

    •  string 是 redis 最基本的类型,string 类型的值最大能存储 512MB, 一个 key 对应一个 value

      Redis 的 SETGET 命令

    添加

    set+ 键名+ 值

    获取

    get +键名

    删除

    del +键名

    List(列表)

    • List(列表):有序的字符串集合,可以重复添加元素,支持头部和尾部的插入、删除等操作。列表最多可存储 232 - 1 元素

    列表相关的基本命令:

    向列表添加元素

    lpush 键名 值

    lrange  键名 起始位置 结束位置
    lrange list 0 10

     

     

    LINDEX  key  index
    通过索引获取列表中的元素

     

     Set(集合)

    • Set(集合):无序的字符串集合,不允许重复元素,支持集合间的交集、并集、差集等操作。

    • 集合对象的编码可以是 intset 或者 hashtable。

    • Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
    • 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
    向集合添加一个或多个成员

    sadd +键名 +值1

    sadd +键名 +值1 +值2

    查询集合中的所有成员

    smembers +键名

    获取集合的成员数

    scard +键名

    Hash(哈希)

    • Hash(哈希):类似于 Java 中的 Map,包含键值对的集合,每个键值对都是一个字符串。
    •  Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
    将多个 field-value (域-值)对设置到哈希表 key 中。

    语法如下:

    HMSET key field1 value1 field2 value2 field3 value3 ...

    HMSET my_hash

    HMSET的全称是"Hash Multi Set"。

    获取哈希表中所有值。
    1. 使用HVALS命令获取哈希表中的所有值。语法如下:

      HVALS key

      其中,key是哈希表的名称。

    2. 例如,如果要获取名为my_hash的哈希表中的所有值,可以执行以下命令:

      HVALS my_hash

     删除一个或多个哈希表字段
    查看哈希表 key 中,指定的字段是否存在。

    获取存储在哈希表中指定字段的值。

    获取在哈希表中指定 key 的所有字段和值

    # 获取哈希表中所有字段和值
    HGETALL my_hash

    # 将返回结果存储在一个临时的无序集合中(Set),这将自动去除重复的元素
    SADD tmp_set "two" "three" "four" "field1"

    # 获取无序集合中的所有成员(即去重后的结果)
    SMEMBERS tmp_set

    # 删除临时集合
    DEL tmp_set

    在这个示例中,我们通过SADD命令将返回结果中的所有字段名(包括重复的)存储在一个临时的无序集合中,Redis会自动去除重复的元素。然后使用SMEMBERS命令来获取无序集合中的所有成员,即去重后的结果。最后,使用DEL命令删除临时集合。


    Sorted Set(有序集合)

    • Sorted Set(有序集合):与 Set 类似,但是每个元素都有一个分数(score),根据分数进行排序。

    • 有序集合的成员是唯一的,但分数(score)却可以重复。
    • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1
    向有序集合添加一个或多个成员,或者更新已存在成员的分数

    ZADD key score1 member1 [score2 member2]

    获取有序集合(Sorted Set)中成员的数量

    ZCARD key

    计算有序集合(Sorted Set)中分数在给定范围内的成员数量

     

    ZCOUNT key min max

    在有序集合中对指定成员的分数加上增量(increment)

    ZINCRBY my_sorted_set 5 member1

    ZSCORE  key  member
    返回有序集中,成员的分数值

    Redis 有九种数据编码方式:

    1. int:整数编码。
    2. embstr:短字符串编码。
    3. raw:长字符串编码。
    4. hashtable:哈希表编码。
    5. ziplist:压缩列表编码。
    6. skiplist:跳跃表编码。
    7. intset:整数集合编码。
    8. quicklist:快速列表编码。
    9. stream:流数据编码。

    Redis 有七种底层结构:

    1. 字符串对象(String Object):保存字符串值和字符串类型的键。
    2. 列表对象(List Object):保存链表、双端链表和快速链表。
    3. 哈希对象(Hash Object):保存键值对。
    4. 集合对象(Set Object):保存无序字符串集合。
    5. 有序集合对象(Sorted Set Object):保存有序字符串集合。
    6. 整数集合对象(Intset Object):保存整数集合。
    7. 跳跃表对象(Skiplist Object):保存有序字符串集合的跳跃表。

    Redis 命令

    redis启动命令
     

    redis-cli

    ping命令(查看服务是否运行)

    表示成功

    如果ping 发生如下情况

    错误信息 "NOAUTH Authentication required." 表示Redis服务器要求进行身份验证,但连接没有提供正确的认证信息。

    要解决这个问题,你需要提供正确的认证信息才能连接到Redis服务器。通常情况下,你可以在连接Redis时使用 AUTH 命令提供密码进行身份验证。

    例如,如果你的Redis服务器设置了密码为 "your_password",你可以这样连接:

    AUTH your_password 

    确保在连接之前先进行身份验证,这样你就可以成功连接到Redis服务器并执行相应的命令了。

     

     

  • 相关阅读:
    竹间智能用认知智能为企业的发展提供助力
    十天学完基础数据结构-第四天(链表(Linked List))
    汽车零部件制造中的信息抽取技术:提升效率与质量的关键
    半球体容器漏水体积微分问题
    华为配置旁挂二层组网直接转发示例
    flink 入门(一)
    Web前端:20大新AngularJS开发工具
    Dart 2.18 正式发布
    python二次开发Solidworks:读取立方体的高度
    掌握Python中classmethod的妙用,提升代码灵活性与可维护性
  • 原文地址:https://blog.csdn.net/q12ERTYU/article/details/136105494