Redis十大类型——Set与Zset常见操作

  • Set
  • 命令操作简列
  • 基本操作
  • 展示删除
  • 移动剪切
  • 集合运算
  • Zset
  • 基本操作简列
  • 添加展示反转
  • 按分数取值
  • 获取分数值
  • 删除
  • 分数操作
  • 下标操作



如果我们对Java有所了解,相信大家很容易就明白Set,在Redis中也一样,Set的value值不重复,无序不重复

Set

命令操作简列

  • sadd : 创建set并添加元素
  • smembers : 展示某个set
  • sismember : 检查set中是否存在某个值,存在返回1,不存在返回0
  • srem : 删除一个值,待删除的值存在返回1并删除,不存在则返回0
  • scard : 统计set中元素个数
  • srandmember ‘key’ ‘n’ : 在’key’中随机选n个元素不进行删除操作
  • spop ‘key’ ‘n’ : 从’key’中随机弹出n个元素,弹出后将从’key’中删除该元素
  • smove ‘key1’ ‘key2’ : 将’key1’中存在的某个值移动移动移动!!到’key2’
  • sdiff ‘key1’ ‘key2’:获取差集,即指在’key1’中存在’key2’中没有的值
  • sunion ‘key1’ ‘key2’ : 取并集,即两个key中的所有元素
  • sinter ‘key1’ ‘key2’ : 取交集,即两个key中同时存在的元素
  • sintercard ‘n’ ‘ke1’ … : 取交集,n个key列举后取交集并返回共有的个数

基本操作

  • sadd : 创建set并添加元素
  • smembers : 展示某个set
  • sismember : 检查set中是否存在某个值,存在返回1,不存在返回0
  • srem : 删除一个值,待删除的值存在返回1并删除,不存在则返回0
  • scard : 统计set中元素个数

java redis set删除 redis zset删除_redis

展示删除

  • srandmember ‘key’ ‘n’ : 在’key’中随机选n个元素不进行删除操作
  • spop ‘key’ ‘n’ : 从’key’中随机弹出n个元素,弹出后将从’key’中删除该元素

java redis set删除 redis zset删除_nosql_02

移动剪切

  • smove ‘key1’ ‘key2’ : 将’key1’中存在的某个值移动移动移动!!到’key2’

java redis set删除 redis zset删除_java redis set删除_03

集合运算

  • sdiff ‘key1’ ‘key2’:获取差集,即指在’key1’中存在’key2’中没有的值
  • sunion ‘key1’ ‘key2’ : 取并集,即两个key中的所有元素
  • sinter ‘key1’ ‘key2’ : 取交集,即两个key中同时存在的元素

下面展示一条Redis7中的新命令,主要做去重统计用

  • sintercard ‘n’ ‘ke1’ … : 取交集,n个key列举后取交集并返回共有的个数

java redis set删除 redis zset删除_nosql_04

  • sintercard ‘n’ ‘ke1’ … limit y: 取交集,n个key列举后取交集并返回共有的个数 最大取y个

Zset

Zset在Set基础上,每个val值前面加了一个score分数值,从而达到有序集合目的使set有序不重复

java redis set删除 redis zset删除_Redis中Set常见操作_05

基本操作简列

  • zadd : 创建添加元素
  • zrange ‘key’ ‘start’ ‘end’ [withscores]: 类似遍历展示所有元素
  • zrevrange : 逆序遍历
  • zrangebyscore ‘key’ ‘num1’ ‘num2’ [withscores] : 在key中取分数在num1到num2之间的值
  • zscore : 获取某个值对应的分数
  • zcard : 获取集合中元素数量
  • zrem : 删除某个值,删除成功返回1,没有该元素返回0
  • zincrby : 增加某个元素的分数
  • zcount : 获取某指定分数范围内元素个数
  • zmpop ‘n’ ‘key’ … min/max count ‘m’ : 从n个’key’中弹出最小最大的m个元素
  • zrank : 正着数获取某个元素下标索引
  • zrevrank : 倒着数获取某个元素下标索引

添加展示反转

  • zadd : 创建添加元素
  • zrange ‘key’ ‘start’ ‘end’ [withscores] : 类似遍历展示所有元素
  • zrevrange : 逆序遍历

java redis set删除 redis zset删除_java redis set删除_06

按分数取值

前面关于zset的三个函数我们也能看到都是通过值取,那么下面这个顾名思义也很好理解就是通过分数过滤来取值

  • zrangebyscore ‘key’ ‘num1’ ‘num2’ [withscores] : 在key中取分数在num1到num2之间的值

这里我们可以注意到一些带“(”的情况即表示不包含当前值,limit则表示取几个值用于限制返回

java redis set删除 redis zset删除_缓存_07

获取分数值

  • zscore : 获取某个值对应的分数
  • zcard : 获取集合中元素数量

java redis set删除 redis zset删除_nosql_08

删除

  • zrem : 删除某个值,删除成功返回1,没有该元素返回0

java redis set删除 redis zset删除_缓存_09

分数操作

  • zincrby : 增加某个元素的分数
  • zcount : 获取某指定分数范围内元素个数
    下面再展示一条Redis7中的新命令,主要做去重统计用
  • zmpop ‘n’ ‘key’ … min/max count ‘m’ : 从n个’key’中弹出最小最大的m个元素

java redis set删除 redis zset删除_缓存_10

下标操作

  • zrank : 正着数获取某个元素下标索引
  • zrevrank : 倒着数获取某个元素下标索引

java redis set删除 redis zset删除_java redis set删除_11