JAVA分布式——Redis笔记(三)常用关于各种数据的操作命令,关于List数据类型的操作命令,关于Set数据类型的操作命令,关于harsh类型的操作命令,关于有序集合的常用命令

一、关于List数据类型的操作命令

1.1 列表(List)

  • Redis列表是简单的字符串列表,按照插入顺序排序,左边(头部)、右边(尾部)或者中间都可以添加元素。链表的操作无论是头或者尾效率都极高,但是如果对中间元素进行操作,那效率会大大降低了。

  • 列表类型的数据操作总的思想是通过key和下标操作value,key是数据标识,下标是数据在列表中的位置,value是我们感兴趣的业务数据。

  • 每一个元素的下标可以用负数表示,负下标表示从表尾计算,最后一个元素下标为-1

  • 元素在列表中的顺序由放入的顺序决定

1.2 lpush(头插法)

  • 语法lpush key value [value…]

  • 功能:将一个或多个值 value 插入到列表 key 的最左边(表头),各个value值依次插入到表头位置。

  • 返回值:插入之后的列表的长度。

在这里插入图片描述

1.3 rpush(尾插法)

  • 语法rpush key value [value…]

  • 功能:将一个或多个值 value 插入到列表 key 的最右边(表尾),各个 value 值按依次插入到表尾。

  • 返回值:插入之后的列表的长度。
    在这里插入图片描述

1.4 lrange (获得列表元素)

  • 语法lrange key startIndex endIndex

  • 功能

    • 获取列表 key 中指定下标区间内的元素,下标从0开始,到列表长度-1;
    • 标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;
    • startIndex和endIndex超出范围不会报错。
  • 返回值:获取到的元素列表。
    在这里插入图片描述

1.5 lpop(头删除并返回元素)

  • 语法lpop key

  • 功能:移除并返回列表key头部第一个元素,即列表左侧的第一个元素。

  • 返回值:列表左侧第一个元素的值;列表key不存在,返回nil。
    在这里插入图片描述

1.6 rpop(尾删除并返回元素)

  • 语法rpop key

  • 功能:移除并返回列表key尾部第一个元素,即列表右侧的第一个元素。

  • 返回值:列表右侧第一个元素的值;列表key不存在,返回nil。

在这里插入图片描述

1.7 lindex(根据下标获取元素)

  • 语法lindex key index

  • 功能:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。0 表示列表的第一个元素,1 表示列表的第二个元素;index也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

  • 返回值:key存在时,返回指定元素的值;key不存在时,返回nil。
    在这里插入图片描述

1.8 llen(获取列表长度)

  • 语法llen key

  • 功能:获取列表 key 的长度

  • 返回值:数值,列表的长度;key不存在返回0
    在这里插入图片描述

1.9 lrem(删除多少个指定元素)

  • 语法lrem key count value

  • 功能:根据参数 count 的值,移除列表中与参数 value 相等的元素

    • count >0 ,从列表的左侧向右开始移除count个和value相同的元素;
    • count < 0 从列表的尾部开始移除移除count个和value相同的元素;
    • count = 0移除表中所有与 value 相等的值。
  • 返回值:数值,移除的元素个数
    在这里插入图片描述

1.10 ltrim(截取一段元素)

  • 语法ltrim key startIndex endIndex

  • 功能:截取key的指定下标区间的元素,并且赋值给key。

    • 下标从0开始,一直到列表长度-1;
    • 下标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;
    • startIndex和endIndex超出范围不会报错。
  • 返回值:执行成功返回ok
    在这里插入图片描述

1.11 lset(设置指定下标为某值)

  • 语法lset key index value

  • 功能:将列表 key 下标为 index 的元素的值设置为 value。

  • 返回值:设置成功返回ok ; key不存在或者index超出范围返回错误信息。
    在这里插入图片描述

1.12 linsert(指定元素前后插入新元素)

  • 语法linsert key before/after pivot value

  • 功能:将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key不存在或者pivot不在列表中,不执行任何操作。

  • 返回值:命令执行成功,返回新列表的长度。没有找到pivot返回 -1, key不存在返回0。

在这里插入图片描述

二、 关于set集合类型的操作命令

2.1 集合(set)

  • Redis的Set是string类型的无序不重复集合。
  • 集合类型的数据操作总的思想是通过key确定集合,key是集合标识,元素没有下标,只有直接操作业务数据和数据的个数。
  • 单key,多value

2.2 sadd(添加元素)

  • 语法sadd key member [member…]

  • 功能:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略,不会再加入。

  • 返回值加入到集合的新元素的个数(不包括被忽略的元素)。
    在这里插入图片描述

2.3 smembers(查看指定集合所有元素)

  • 语法smembers key

  • 功能:获取集合 key 中的所有成员元素,不存在的key视为空集合。

  • 返回值:返回指定集合的所有元素集合,不存在的key,返回空集合。
    在这里插入图片描述

2.4 sismember(判断指定元素是否存在)

  • 语法sismember key member

  • 功能:判断 member 元素是否是集合 key 的元素

  • 返回值:member是集合成员返回1,其他返回 0 。
    在这里插入图片描述

2.5 scard(返回所有元素个数)

  • 语法scard key

  • 功能:获取集合里面的元素个数

  • 返回值:数字,key的元素个数。其他情况返回 0 。
    在这里插入图片描述

2.6 srem(删除一个或多个指定元素)

  • 语法srem key member [member…]

  • 功能:移除集合中一个或多个元素,不存在的元素被忽略。

  • 返回值:数字,成功移除的元素个数,不包括被忽略的元素。
    在这里插入图片描述

2.7 srandmember(随机获取元素(可重复或不重复))

  • 语法srandmember key[count]

  • 功能:只提供key,随机返回集合中一个元素,元素不删除,依然在集合中;提供了count时

    • count 正数, 返回包含count个数元素的集合,集合元素各不重复。
    • count是负数,返回一个count绝对值的长度的集合,集合中元素可能会重复多次。
  • 返回值:一个元素或者多个元素的集合

在这里插入图片描述

2.8 spop(随机删除一个或多个元素)

  • 语法spop key[count]

  • 功能:随机从集合中删除一个或count个元素。

  • 返回值:被删除的元素,key不存在或空集合返回nil。
    在这里插入图片描述

2.9 smove(将集合中一个元素移到另一个集合中)

  • 语法smove src dest member

  • 功能

    • 将 member 元素从src集合移动到dest集合
    • member不存在,smove不执行操作,返回0,
    • 如果dest存在member,则仅从src中删除member。
  • 返回值:成功返回 1 ,其他返回 0 。
    在这里插入图片描述

2.10 sdiff(返回指定集合中的差值)

  • 语法sdiff key key [key…]

  • 功能:返回指定集合的差集,以第一个集合为准进行比较,即第一个集合中有但在其它任何集合中都没有的元素组成的集合。

  • 返回值:返回第一个集合中有而后边集合中都没有的元素组成的集合,如果第一个集合中的元素在后边集合中都有则返回空集合。
    在这里插入图片描述
    在这里插入图片描述

2.11 sinter(返回指定集合中的交集)

  • 语法sinter key key [key…]

  • 功能:返回指定集合的交集,即指定的所有集合中都有的元素组成的集合。

  • 返回值:交集元素组成的集合,如果没有则返回空集合。
    在这里插入图片描述

2.12 sunion(返回指定集合中的并集)

  • 语法sunion key key [key…]

  • 功能:返回指定集合的并集,即指定的所有集合元素组成的大集合,如果元素有重复,则保留一个。

  • 返回值:返回所有集合元素组成的大集合,如果所有key都不存在,返回空集合。

在这里插入图片描述

三、关于harsh类型的操作命令

3.1 harsh类型数据

  • Redis的hash 是一个string类型的key和value的映射表,这里的value是一系列的键值对,hash特别适合用于存储对象。
  • 哈希类型的数据操作总的思想是通过key和field操作value,key是数据标识,field是域,value是我们感兴趣的业务数据。
    在这里插入图片描述

3.2 hset(存一个对象)

  • 语法hset key field value [field value …]

  • 功能:将键值对field-value设置到哈希列表key中,如果key不存在,则新建哈希列表,然后执行赋值,如果key下的field已经存在,则value值覆盖。

  • 返回值:返回设置成功的键值对个数。
    在这里插入图片描述

3.3 hget(取出对象的单个值)

  • 语法hget key field

  • 功能:获取哈希表 key 中给定域 field 的值。

  • 返回值:field域的值,如果key不存在或者field不存在返回nil

在这里插入图片描述

3.4 hmset(批量设置field对应的value)

  • 语法hmset key field value [field value…]

  • 功能:同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的field,hash表key不存在,创建空的hash表,再执行hmset.

  • 返回值:设置成功返回ok,如果失败返回一个错误。

  • 与hset一样
    在这里插入图片描述

3.5 hmget(批量取出field对应的value)

  • 语法hmget key field [field…]

  • 功能:获取哈希表 key 中一个或多个给定域的值

  • 返回值:返回和field顺序对应的值,如果field不存在,返回nil。
    在这里插入图片描述

3.6 hgetall(获取所有的field和value)

  • 语法hgetall key

  • 功能:获取哈希表 key 中所有的域和值

  • 返回值:以列表形式返回hash中域和域的值,key不存在,返回空hash.
    在这里插入图片描述

3.7 hdel(删除一个filed属性)

  • 语法hdel key field [field…]

  • 功能:删除哈希表 key 中的一个或多个指定域field,不存在field直接忽略。

  • 返回值:成功删除的field的数量。
    在这里插入图片描述

3.8 hlen(获取key中的field的个数)

  • 语法hlen key

  • 功能:获取哈希表 key 中域field的个数

  • 返回值:数值,field的个数。key不存在返回0.
    在这里插入图片描述

3.9 hexists(判断field是否存在)

  • 语法hexists key field

  • 功能:查看哈希表 key 中,给定域 field 是否存在

  • 返回值:如果field存在,返回1,其他返回0。
    在这里插入图片描述

3.10 hkeys(列出key中所有的field)

  • 语法hkeys key

  • 功能:查看哈希表 key 中的所有field域列表

  • 返回值:包含所有field的列表,key不存在返回空列表
    在这里插入图片描述

3.11 hvals(列出key中所有的value值)

  • 语法hvals key

  • 功能:返回哈希表中所有域的值列表

  • 返回值:包含哈希表所有域值的列表,key不存在返回空列表。
    在这里插入图片描述

3.12 hincrby(指定的field进行数值型加法运算)

  • 语法hincrby key field int

  • 功能:给哈希表key中的field域增加int

  • 返回值:返回增加之后的field域的值

  • 注意添加的数值必须是int型
    在这里插入图片描述

3.13 hincrbyfloat(指定的field进行浮点型加法运算)

  • 语法hincrbyfloat key field float

  • 功能:给哈希表key中的field域增加float

  • 返回值:返回增加之后的field域的值
    在这里插入图片描述

3.14 hsetnx(不进行覆盖式赋值)

  • 语法hsetnx key field value

  • 功能:将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在的时候才设置,否则不设置。

  • 返回值:设值成功返回1,其他返回0.
    在这里插入图片描述

四、关于有序集合类型(Zset)操作命令

4.1 zet有序集合类型

  • Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员
  • 不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。
  • 注意:元素不能重复,但是每个元素关联一个分数,这个分数可以重复,用于对元素进行排序

4.2 zadd(添加元素并关联分数)

  • 语法zadd key score member [score member…]

  • 功能:将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,则覆盖原来的值;score可以是整数或浮点数.

  • 返回值:数字,新添加的元素个数.

  • 如果元素存在,会将分数覆盖掉
    在这里插入图片描述

4.3 zrange(从小到大返回集合中所有元素)

  • 语法zrange key startIndex endIndex [WITHSCORES]

  • 功能:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序;

    • startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推;
    • startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;
    • WITHSCORES选项让score和value一同返回
  • 返回值:指定区间的成员组成的集合。
    在这里插入图片描述

4.4 zrangebyscore(根据分数获取指定元素)

  • 语法zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

  • 功能

    • 获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序;
    • 使用符号”(“ 表示包括min但不包括max;
    • withscores 显示score和 value;
    • limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
  • 返回值:指定区间的集合数据
    ()

4.5 zrem(删除一个或多个元素)

  • 语法zrem key member [member…]

  • 功能:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略。

  • 返回值:被成功删除的成员数量,不包括被忽略的成员。
    在这里插入图片描述

4.6 zcard(获取元素个数)

  • 语法zcard key

  • 作用:获取有序集 key 的元素成员的个数。

  • 返回值:key存在,返回集合元素的个数;key不存在,返回0
    在这里插入图片描述

4.7 zcount(指定区间内的元素个数)

  • 语法zcount key min max

  • 功能:返回有序集 key 中, score 值在 min 和 max 之间(包括 score 值等于 min 或 max )的成员的数量。

  • 返回值:指定有序集合中分数在指定区间内的元素数量。
    在这里插入图片描述

4.8 zrank(由小到大获取指定元素的排名)

  • 语法zrank key member

  • 功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从小到大顺序排列,从0开始排名,score最小的是0 。

  • 返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。
    在这里插入图片描述

4.9 zscore(获取元素的分数)

  • 语法zscore key member

  • 功能:获取有序集合key中元素member的分数。

  • 返回值:返回指定有序集合元素的分数。
    在这里插入图片描述

4.10 zrevrank(由大到小获取指定元素排名)

  • 语法zrevrank key member

  • 功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从大到小顺序排列,从0开始排名,score最大的是0 。

  • 返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。
    在这里插入图片描述

4.11 zrevrange(从大到小返回所有元素)

  • 语法zrevrange key startIndex endIndex [WITHSCORES]

  • 功能

    • 查询有序集合,指定区间的内的元素。
    • 集合成员按score值从大到小来排序;
    • startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推;
    • startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;
    • WITHSCORES选项让score和value一同返回。
  • 返回值:指定区间的成员组成的集合。
    在这里插入图片描述

4.12 zrevrangebyscore(递减获取范围内排名)

  • 语法zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]

  • 功能

    • 获取有序集 key 中,所有 score 值介于 max 和 min 之间(包括max和min)的成员,有序成员是按递减(从大到小)排序;
    • 使用符号”(“ 表示不包括min和max;
    • withscores 显示score和 value;
    • limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
  • 返回值:指定区间的集合数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值