zoukankan      html  css  js  c++  java
  • Redis的Set数据类型

    Sets 就是一个集合,集合的概念就是一堆不重复值的组合。利用Redis提供的Sets数据结构,可以存储一些集合性的数据,比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

    本文的命令参考:http://www.redisdoc.com/en/latest/set/index.html

    简单的增加,查看功能

    127.0.0.1:6379> smembers birds
    (empty list or set)
    127.0.0.1:6379> sadd birds crow
    (integer) 1
    127.0.0.1:6379> sadd birds pigeon
    (integer) 1
    127.0.0.1:6379> sadd birds bat
    (integer) 1
    127.0.0.1:6379> smembers birds
    1) "pigeon"
    2) "bat"
    3) "crow"
    127.0.0.1:6379> sadd mammals dog
    (integer) 1
    127.0.0.1:6379> sadd mammals cat
    (integer) 1
    127.0.0.1:6379> sadd mammals bat
    (integer) 1
    127.0.0.1:6379> smembers mammals
    1) "dog"
    2) "bat"
    3) "cat"
    127.0.0.1:6379>

    删除元素

    参考:http://www.redisdoc.com/en/latest/set/srem.html

    SREM key member [member ...]

    移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

    当 key 不是集合类型,返回一个错误。

    127.0.0.1:6379> smembers mammals
    1) "dog"
    2) "bat"
    3) "cat"
    127.0.0.1:6379> srem mammals cat
    (integer) 1
    127.0.0.1:6379> smembers mammals
    1) "dog"
    2) "bat"
    127.0.0.1:6379> sadd mammals human
    (integer) 1
    127.0.0.1:6379> smembers mammals
    1) "dog"
    2) "human"
    3) "bat"

    交集比较:

    SINTER key [key ...]

    返回一个集合的全部成员,该集合是所有给定集合的交集。

    不存在的 key 被视为空集。

    当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。

    SUNION key [key ...]

    返回一个集合的全部成员,该集合是所有给定集合的并集。

    不存在的 key 被视为空集。

    SDIFF key [key ...]

    返回一个集合的全部成员,该集合是所有给定集合之间的差集。

    不存在的 key 被视为空集。

    127.0.0.1:6379> smembers mammals
    1) "dog"
    2) "human"
    3) "bat"
    127.0.0.1:6379> smembers birds
    1) "pigeon"
    2) "bat"
    3) "crow"
    127.0.0.1:6379> sinter birds mammals
    1) "bat"
    127.0.0.1:6379> sunion birds mammals
    1) "dog"
    2) "crow"
    3) "bat"
    4) "pigeon"
    5) "human"
    127.0.0.1:6379> sdiff birds mammals
    1) "pigeon"
    2) "crow"
    127.0.0.1:6379> sdiff mammals birds
    1) "dog"
    2) "human"
    127.0.0.1:6379>

     

    参考资料:

    Redis 命令参考
    http://www.redisdoc.com/en/latest/index.html

    十五分钟介绍 Redis数据结构
    http://blog.nosqlfan.com/html/3202.html

    Redis系统性介绍
    http://blog.nosqlfan.com/html/3139.html

    Redis之七种武器
    http://blog.nosqlfan.com/html/2942.html

    试用redis
    http://try.redis.io/

    Redis 设计与实现
    http://www.redisbook.com/en/latest/

  • 相关阅读:
    隔离级别 && SNAPSHOT
    多态性&& 虚函数 && 抽象类
    socket编程
    [APIO2015]巴邻旁之桥
    LuoguP3701 「伪模板」主席树
    线段树标记永久化
    [HNOI2015]开店
    NOIP2017划水记
    FFTNTT总结
    [THUWC 2017]在美妙的数学王国中畅游
  • 原文地址:https://www.cnblogs.com/ghj1976/p/3558909.html
Copyright © 2011-2022 走看看