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

818-Redis常用数据操作(列表(List),集合(Set)) Redis 列表(List) 单键多值 Redis 列表是简单的字符串列表,按照插入顺序进行排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节 点性能会较差。 常用命令 lpush/rpush <key><value1><value2><value3> .... 从左边/右边插入一个或多个值。 lpop/rpop <key>从左边/右边吐出一个值。值在键在,值 阅读详情

目录

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的使用

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类型

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

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类型交集、差集、并集命令的练习

SortedSet类型

SortedSet类型的特征:

SortedSet类型的常用命令:

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

SortedSet类型命令练习

插入学生得分数据:

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> 

删除Tom同学:

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

获取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 集合(Sorted Set)方法使用详解 本文主要是介绍集合(SortedSet)中常见方法的使用,包括对应的java使用方式,ZADD、ZREM、ZSCORE、ZINCRBY、ZCARD、ZRANK、ZREVRANK、ZRANGE、ZREVRANGE、ZRANGEBYSCORE、ZREVRANGEBYSCORE、ZCOUNT、ZREMRANGEBYRANK、ZREMRANGEBYSCORE、ZINTERSTORE、ZUNIONSTORE、ZPOPMAX、ZPOPMIN、BZPOPMAX、BZPOPMIN 阅读详情

相关推荐

Redis 基础 -- 有序集合 SortedSet类型SortedSet类型的常用命令

Redis的有序集合(SortedSet)同时具有 有序和 集合两种性质,这种数据结构中的每个元素都由一个成员和一个与成员相关联的分值组成,其中成员(value)以字符串方式存储,而分值(score)则以64位双精度浮点数格式存储。

天行健 君子以自强不息,地势坤 君子以厚德载物。 4128

RedisSortedSet数据类型及其常用命令详解

Redis--SortedSet数据类型及其常用命令详解

喻师傅的学习笔记 3082

redis SortedSet类型命令

Redis中的Sorted Set(有序集合)是一种有序的、不重复的数据结构。Sorted Set中的每个成员都与一个分数(score)关联,通过分数可以对成员进行排序

drhnb的博客 569

Redis命令——通用命令、String类型、Key层级结构、Hash类型List类型Set类型SortedSet类型

通用命令是任何数据类型都能适用的命令,在我们官方文档中,就是在Keys这一组下。

weixin_51351637的博客 2208

Redis基础 -- Redis数据结构、Redis通用命令Redis 的 key 的层次结构、Redis5种数据类型及基本命令(String、List、Hash、SetSortedSet

文章目录1. Redis数据结构2. Redis通用命令2.1 KEYS(查看符合模板的所有key )2.2 DEL(删除一个指定的key )2.3 EXISTS(查看指定的key是否存在)2.4 EXPIRE(给一个key设置有效期)2.5 TTL(查看一个key的剩余有效期 )3. String类型3.1 String类型介绍3.2 String类型常用命令3.2.1 SET3.2.2 GET3.2.3 MSET3.2.4 MGET3.2.5 INCR3.2.6 INCRBY3.2.7 INCRBYFL

天行健 君子以自强不息,地势坤 君子以厚德载物。 2911

Redis3:Hash类型List类型Set类型SortedSet类型

Redis中的List类型与Java中的LinkedList类似,可以看做一个双向链表。既可以正向检索也可以反向检索。redis中的Set结构,与Java中的HashSet类似,因此具备与HashSet类似的特征。redis中的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但二者底层数据结构却有很大差别。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表。

casually的博客 1184

Redis 常用数据类型命令总结:String、Hash、ListSetSortedSet 一篇搞懂

本文围绕 Redis 常见数据类型展开,系统整理了 String、Hash、ListSetSortedSet 五种核心结构的使用场景和常用命令。文章首先介绍了 Redis 中 key 的命名规范,建议使用“项目名:业务名:类型:id”的层级结构,方便后期维护。随后分别讲解了 String 的缓存与计数器用法、Hash 存储对象的优势、List 在消息队列和最新列表中的应用、Set 在去重和集合运算中的价值,以及 SortedSet 在排行榜、热榜等排序场景中的典型使用方式。通过命令表格、实际示例和流程图

ZFChan的博客 392

Redis命令-ListSetSortedSet类型

redis笔记

qq_45681515的博客 529

Redis基础篇:Redis命令(数据结构介绍,通用命令,String类型,Key的层级格式,Hash类型List类型Set类型SortedSet类型)

通过命令行或者是访问官方文档:通过可以查看一个命令的具体用法 :查看符合模板的所有key, :删除一个指定的key :判断key是否存在 :给一个key设置有效期,有效期到期时该key会被自动删除:查看一个KEY的剩余有效期不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过512m.常用命令: 查看图像界面(RDM): Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD: 有: :获取一个hash类型key的field的值 :批量添加多个ha

jungleirim的博客 1530

黑马Redis A基础01-命令String类型-JSON格式-Hash类型-List类型-Set类型-SortedSet类型-Redis的java客户端-jedis连接池-Spring集成Redis

1.Redis入门介绍。

Tianwen55的博客 177

Redis 命令详细介绍(Key的层次结构,通用命令,String命令,Hash命令List命令....)

该文章详细介绍了Redis的常用命令

qq_75103498的博客 1087

Redis数据类型listsetsortedset的常用命令

Redis数据类型listsetsortedset的常用命令

m0_60591654的博客 199

瑞_Redis_Redis命令

本文章为瑞_系列专栏之《Redis》的基础篇的Redis命令章节。主要介绍:Redis命令Redis数据结构、Redis 的 key 的层级结构、Redis通用命令、String类型、Hash类型List类型Set类型SortedSet类型

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1453

redis基本数据类型和常见命令

Redis是典型的key-value(键值型)数据库,key一般是字符串,而value包含很多不同的数据类型Redis为了方便我们学习,将操作不同数据类型命令也做了分组,在官网()可以查看到不同的命令:在redis客户端中,可以通过help @命令组名或help 命令名查看命令的用法本文首先将对redis的通用命令进行介绍,在讲解redis的5种基本数据类型(String,Hash,List,Set,SortedSet)中穿插介绍在redis中key的结构该如何设置。

c1tenj2的博客 1373

Redis系列】Redis命令

Redis是一个Key-Value的数据库,key一般是String类型,不过value的类型多种多样。StringHashListSet{A, B, C}SortedSetGEOBitMapHyperLog其中StringHashListSetSortedSet为基本类型,GEOBitMapHyperLog为特殊类型。可以通过在客户端输入help @{组名}来查看命令的帮助文档,如通过来查看string。

Love Peace 1772

Redis常用命令

Redis常用命令汇总

Xinnnnn的博客 1046

Redis的常用命令大全

Redis是一种键值型的NoSql数据库,这里有两个关键字:键值型NoSql。

csdn3043663729的博客 4106

Redis的常用命令

Redis通用命令

m0_63324465的博客 937
上一篇: Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令
下一篇: 实现分别在Linux、Docker、Kubernetes上安装部署Mysql、Redis、Nginx软件
Claylpf
博客等级 码龄6年 69粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值