Redis核心数据结构 - set

2021-04-03  本文已影响0人  kyo1992

常用操作

SADD key member [member ...]    // 往集合key存入元素,若已存在则会略
SREM key member [member ...]    // 从集合key中删除元素
SMEMBERS key    // 获取集合key中所有元素
SCARD key    // 获取集合key中所有元素
SISMEMBER key member    // 判断member元素是否存在于集合key中
SRANDMEMBER key [count]    // 从集合key中选出count个元素,元素不从key中删除
SPOP key [count]    // 从集合key中选出count个元素,元素从key中删除

运算操作

SINTER key [key ...]    // 交集运算
SINTERSTORE destination key [key ...] emsp;  // 将交集结果存入新集合destination中
SUNION key [key ...]    // 并集运算
SUNIONSTORE destination key [key ...] emsp;  // 将并集结果存入新集合destination中
SDIFF key [key ...]    // 差集运算
SDIFFSTORE destination key [key ...] emsp;  // 将差集结果存入新集合destination中

应用场景

  1. 点赞
    SADD like:{消息ID} {用户ID}
  2. 取消点赞
    SREM like:{消息ID} {用户ID}
  3. 检查用户是否点过赞
    SISMEMBER like:{消息ID} {用户ID}
  4. 获取点赞的用户列表
    SMEMBERS like:{消息ID}
  5. 获取点赞用户数
    SCARD like:{消息ID}
  1. kyo关注的人:
    kyoFocus -> {joe, smith, wallace}
  2. joe关注的人:
    joeFocus -> {kyo, smith, haha}
  3. smith关注的人:
    smithFocus ->{kyo, joe, haha, wallace}
  4. kyo和joe共同关注:
    SINTER kyoFocus joeFocus -> {smith}
  5. kyo关注的人也关注joe:
    SISMEMBER smithFocus joe
    SISMEMBER wallaceFocus joe
  6. kyo可能认识的人:
    SDIFF joeFocus kyoFocus ->{kyo, haha}
  1. kyo看过的电影id:
    kyoMovie -> {m1,m2,m3}
  2. kyo朋友joe看过的电影id:
    joeMovie -> {m3,m4,m5,m6}
  3. 把joe看过kyo没看过的电影推荐给kyo:
    sdiff joeMovie kyoMovie -> {m4,m5,m6}
上一篇下一篇

猜你喜欢

热点阅读