Redis List类型命令 - Set类型命令 - SortedSet类型命令

这篇具有很好参考价值的文章主要介绍了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类型

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

什么是双向链表呢?

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

跟java中的Linkedlist十分的类似: 

List类型的特征:

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

List的常用命令

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

LPUSH和RPUSH的区别:

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

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

LPOP和RPOP的区别:

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

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

LPUSH和RPUSH的使用

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

LPOP和RPOP的使用

192.168.1.209:6379> LPOP users 1
1) "3"
192.168.1.209:6379> RPOP users 1
1) "6"
192.168.1.209:6379> 

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

192.168.1.209:6379> LRANGE users 1 2
1) "1"
2) "4"
192.168.1.209:6379> LRANGE users 2 3
1) "4"
2) "5"
192.168.1.209:6379> LRANGE users 0 3
1) "2"
2) "1"
3) "4"
4) "5"
192.168.1.209:6379> 

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

192.168.1.209:6379> BLPOP users2 100     # 等待了18.5秒,当从其他机器上插入后,出现数据
1) "users2"
2) "clay"
(18.50s)

127.0.0.1:6379> LPUSH users2 clay     # 添加了users2这个key
(integer) 1
127.0.0.1:6379> 


192.168.1.209:6379> BLPOP users3 10     # 不存在该key(users3)
(nil)
(10.06s)
192.168.1.209:6379> 

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

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

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

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

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

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

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

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

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

Set类型

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

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

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

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

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

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

192.168.1.209:6379> SREM s1 b
(integer) 1
192.168.1.209:6379> 

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

192.168.1.209:6379> SCARD s1
(integer) 2
192.168.1.209:6379> 

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

192.168.1.209:6379> SISMEMBER s1 a
(integer) 1
192.168.1.209:6379> SISMEMBER s1 b
(integer) 0
192.168.1.209:6379> 

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

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

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

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

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

SortedSet类型

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

SortedSet类型的特征:

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

SortedSet类型的常用命令:

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

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

SortedSet类型命令练习

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

插入学生得分数据:

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

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存

删除Tom同学:

192.168.1.209:6379> ZREM stus Tom
(integer) 1
192.168.1.209:6379> 

Redis List类型命令 - Set类型命令 - SortedSet类型命令,redis,数据库,缓存文章来源地址https://www.toymoban.com/news/detail-703451.html

获取Amy同学的分数:

192.168.1.209:6379> ZSCORE stus Amy
"92"
192.168.1.209:6379> 

获取Rose同学的排名:

192.168.1.209:6379> ZRANK stus Rose
(integer) 2
192.168.1.209:6379> 

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

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

给Amy同学添加2分:

192.168.1.209:6379> ZINCRBY stus 2 Amy
"94"
192.168.1.209:6379> 

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

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

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

192.168.1.209:6379> ZRANGEBYSCORE stus 0 80
1) "Miles"
2) "Jerry"
192.168.1.209:6379> 

到了这里,关于Redis List类型命令 - Set类型命令 - SortedSet类型命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis的五种数据类型(string、hash 、list、set、zset)

                     Redis 提供了丰富的数据类型,常见的有五种: String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合) 。         String 是最基本的 key-value 结构,key 是唯一标识,value 是具体的值,value其实不仅是字符串, 也可以是数字(整

    2024年01月25日
    浏览(49)
  • redis List类型命令

    在Redis中,List(列表)是一种有序的、可重复的数据结构,它支持插入、删除和获取元素的操作。以下是一些常见的Redis List类型命令: LPUSH:将一个或多个值从列表的左侧插入。 其中, key 是列表的键名, value1 、 value2 等是要插入的值。 示例: 执行以上命令后,列表mylis

    2024年02月13日
    浏览(32)
  • 【redis】list类型命令简述

    redis的list类型,可以存储双向链表作为value,key保留有head和tail指针可以指向双向链表的头和尾,因此可以直接从头或尾对list进行操作。 全部命令如下: 下面示例如下: lpush :lpush key e1 e2 e3…将数据从头那里推入list lpop :lpop key,将数据从head弹出 这样2个同向的命令组合起

    2024年02月17日
    浏览(42)
  • Redis带你深入学习数据类型set

    目录 1、set 2、set相关命令 2.1、添加元素 sadd 2.2、获取元素 smembers 2.3、判断元素是否存在 sismember 2.4、获取set中元素数量 scard 2.5、删除元素spop、srem 2.6、移动元素smove 2.7、集合中相关命令:sinter、sinterstore、sunion、sunionstore、sdiff、sdiffstore 3、应用场景 set数据类型的特点: s

    2024年02月09日
    浏览(44)
  • Redis-带你深入学习数据类型list

    目录 1、list列表 2、list相关命令 2.1、添加相关命令:rpush、lpush、linsert 2.2、查找相关命令:lrange、lindex、llen 2.3、删除相关命令:lpop、rpop、lrem、ltrim 2.4、修改相关命令:lset 2.5、阻塞相关命令:blpop、brpop 3、应用场景 3.1、消息队列  3.2、最新列表         redis中list并非是一

    2024年02月09日
    浏览(41)
  • 【Redis从头学-7】Redis中的Set数据类型实战场景之用户画像去重、共同关注、专属粉丝

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Redis从头学 之前的篇章对Redis的String、List、Hash数据类型已经做出了具体分析,并举例说明了其具体的实战场景本文就

    2024年02月12日
    浏览(32)
  • 【Redis从头学-5】Redis中的List数据类型实战场景之天猫热销榜单

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Redis从头学 之前的篇章对Redis的String数据类型已经做出了具体分析,并举例说明了其具体的实战场景本文就结合List数据

    2024年02月12日
    浏览(37)
  • Redis追本溯源(二)数据结构:String、List、Hash、Set、Zset底层数据结构原理

    Redis 并没有直接用 C 语言的字符串,而是自己搞了一个 sds 的结构体来表示字符串,这个 sds 的全称是 Simple Dynamic String,翻译过来就是“简单的动态字符串”。 安全的二进制存储 资源。关于sds的扩容和缩容下面会进行详细的介绍,这里先不赘述了。 在一些情况中,我们需要

    2024年02月16日
    浏览(51)
  • Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令

    目录 Redis的数据结构: Redis命令: 通用命令:(通用指令是部分数据类型的,都可以使用的指令) KEYS查询命令: DEL删除命令: EXISTS判断命令: EXPIPE有效期设置命令: TTL查看剩余期限命令: String类型: String的3种类型: String类型的常见命令: SET插入数据命令: MSET多重插

    2024年02月09日
    浏览(44)
  • 【Redis】五大数据类型(操作命令)

    🚩Redis 键(key) 这些是 Redis 数据库中的命令,用于对数据类型进行操作和管理。以下是每个命令的含义和用法: DEL:删除一个或多个键。 DUMP:将一个键的值转储到一个字符串中。 EXPIRE:设置键的过期时间。 EXPIREAT:在给定的时间戳之后为键设置过期时间。 KEYS:返回匹配给

    2024年02月13日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包