码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis List类型命令 - Set类型命令 - SortedSet类型命令


    目录

    List类型

    什么是双向链表呢?

    List类型的特征:

    List的常用命令

    LPUSH和RPUSH的区别:

    LPOP和RPOP的区别:

    LPUSH和RPUSH的使用

    LPOP和RPOP的使用

    LRANGE key star end:返回一段距离范围内所有的元素

    BLPOP和BRPOP:它在没有该元素的时候会等待一段时间,而不是直接返回nil

    问题1:如何利用List结构模拟一个栈?

    问题2:如何利用List结构模拟一个队列?

    问题3:如何利用List结构模拟一个阻塞队列?

    Set类型

    Set类型的常用命令(member代表着元素)

    SADD key member:向set中添加一个或者多个元素

    SREM key member:删除set中的指定元素

    SCARD key:返回set中元素的个数

    SISMEMBER key member:判断元素是否存在在key中

    SMEMBERL key:获取set中的所有元素

    SINTER 和 SDIFF 和 SUNION 是实现Set类型的交集、差集、并集操作

    Set类型交集、差集、并集命令的练习

    SortedSet类型

    SortedSet类型的特征:

    SortedSet类型的常用命令:

    SortedSet类型命令练习

    插入学生得分数据:

    删除Tom同学:

    获取Amy同学的分数:

    获取Rose同学的排名:

    查询80分以下有几个同学:

    给Amy同学添加2分:

    查出成绩前3名的同学:(倒序查询)

    查出成绩在80分以下的所有同学:


    List类型

    什么是双向链表呢?

    双向链表(Doubly Linked List)是一种常见的链表数据结构,与单向链表不同,它的每个节点除了包含指向下一个节点的指针外,还包含一个指向前一个节点的指针。这使得双向链表可以在两个方向上遍历链表,从头部到尾部,或者从尾部到头部。

    跟java中的Linkedlist十分的类似: 

    List类型的特征:

    List的常用命令

    LPUSH和RPUSH的区别:

    一个是从列表的左侧开始插入,一个是从列表的右侧开始插入

    LPOP和RPOP的区别:

    一个是从列表的左侧开始取出,一个是从列表的右侧开始取出

    LPUSH和RPUSH的使用

    1. 192.168.1.209:6379> LPUSH users 1 2 3
    2. (integer) 3
    3. 192.168.1.209:6379> RPUSH users 4 5 6
    4. (integer) 6
    5. 192.168.1.209:6379>

    LPOP和RPOP的使用

    1. 192.168.1.209:6379> LPOP users 1
    2. 1) "3"
    3. 192.168.1.209:6379> RPOP users 1
    4. 1) "6"
    5. 192.168.1.209:6379>

    LRANGE key star end:返回一段距离范围内所有的元素

    1. 192.168.1.209:6379> LRANGE users 1 2
    2. 1) "1"
    3. 2) "4"
    4. 192.168.1.209:6379> LRANGE users 2 3
    5. 1) "4"
    6. 2) "5"
    7. 192.168.1.209:6379> LRANGE users 0 3
    8. 1) "2"
    9. 2) "1"
    10. 3) "4"
    11. 4) "5"
    12. 192.168.1.209:6379>

    BLPOP和BRPOP:它在没有该元素的时候会等待一段时间,而不是直接返回nil

    1. 192.168.1.209:6379> BLPOP users2 100 # 等待了18.5秒,当从其他机器上插入后,出现数据
    2. 1) "users2"
    3. 2) "clay"
    4. (18.50s)
    5. 127.0.0.1:6379> LPUSH users2 clay # 添加了users2这个key
    6. (integer) 1
    7. 127.0.0.1:6379>
    8. 192.168.1.209:6379> BLPOP users3 10 # 不存在该key(users3)
    9. (nil)
    10. (10.06s)
    11. 192.168.1.209:6379>

    问题1:如何利用List结构模拟一个栈?

    栈的入口和出口都在同一边,而且必须先进入数据,才能输出数据

    因此需要我们的入口和出口都在同一边,只用LPUSH和LPOP来输入输出数据,或者是只使用RPUSH和RPOP来输入输出数据

    问题2:如何利用List结构模拟一个队列?

    队列的入口和出口不在同一边

    因此需要我们的入口和出口不在同一边,只用LPUSH和RPOP来输入输出数据,或者是只使用RPUSH和LPOP来输入输出数据

    问题3:如何利用List结构模拟一个阻塞队列?

    首先它是队列,因此入口和出口不在同一边

    而且出队的时候必须采用BLPOP和BRPOP来输出,形成阻塞的效果

    Set类型

    Set类型的常用命令(member代表着元素)

    SADD key member:向set中添加一个或者多个元素

    1. 192.168.1.209:6379> SADD s1 a b c
    2. (integer) 3
    3. 192.168.1.209:6379>

    SREM key member:删除set中的指定元素

    1. 192.168.1.209:6379> SREM s1 b
    2. (integer) 1
    3. 192.168.1.209:6379>

    SCARD key:返回set中元素的个数

    1. 192.168.1.209:6379> SCARD s1
    2. (integer) 2
    3. 192.168.1.209:6379>

    SISMEMBER key member:判断元素是否存在在key中

    1. 192.168.1.209:6379> SISMEMBER s1 a
    2. (integer) 1
    3. 192.168.1.209:6379> SISMEMBER s1 b
    4. (integer) 0
    5. 192.168.1.209:6379>

    SMEMBERL key:获取set中的所有元素

    1. 192.168.1.209:6379> SMEMBERS s1
    2. 1) "a"
    3. 2) "c"
    4. 192.168.1.209:6379>

    SINTER 和 SDIFF 和 SUNION 是实现Set类型的交集、差集、并集操作

    Set类型交集、差集、并集命令的练习

    SortedSet类型

    SortedSet类型的特征:

    SortedSet类型的常用命令:

     注:详细的SortedSet类型命令我们能通过命令行的help @sortedset来查看

    SortedSet类型命令练习

    插入学生得分数据:

    1. 192.168.1.209:6379> ZADD stus 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
    2. (integer) 7
    3. 192.168.1.209:6379>

    删除Tom同学:

    1. 192.168.1.209:6379> ZREM stus Tom
    2. (integer) 1
    3. 192.168.1.209:6379>

    获取Amy同学的分数:

    1. 192.168.1.209:6379> ZSCORE stus Amy
    2. "92"
    3. 192.168.1.209:6379>

    获取Rose同学的排名:

    1. 192.168.1.209:6379> ZRANK stus Rose
    2. (integer) 2
    3. 192.168.1.209:6379>

    查询80分以下有几个同学:

    1. 192.168.1.209:6379> ZCOUNT stus 0 80
    2. (integer) 2
    3. 192.168.1.209:6379>

    给Amy同学添加2分:

    1. 192.168.1.209:6379> ZINCRBY stus 2 Amy
    2. "94"
    3. 192.168.1.209:6379>

    查出成绩前3名的同学:(倒序查询)

    1. 192.168.1.209:6379> ZREVRANGE stus 0 2
    2. 1) "Amy"
    3. 2) "Lucy"
    4. 3) "Jack"
    5. 192.168.1.209:6379>

    查出成绩在80分以下的所有同学:

    1. 192.168.1.209:6379> ZRANGEBYSCORE stus 0 80
    2. 1) "Miles"
    3. 2) "Jerry"
    4. 192.168.1.209:6379>
  • 相关阅读:
    我看到的“无条件的爱”,常常是子女给父母的
    RocketMQ—MAC单节点安装下载RocketMQ步骤
    spark sql如何行转列
    美创科技亮相第三届国际零信任峰会,零信任实践获安全革新奖
    react脚手架的一般使用
    win11 defender关闭以及恢复
    excel每行数据按模板导出一个或多个文件,可插入图片、条形码或二维码
    深度学习理论:Categorical crossentropy 损失函数
    Chocolatey 的安装
    MNN简介
  • 原文地址:https://blog.csdn.net/lpfstudy/article/details/132696489
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号