zoukankan      html  css  js  c++  java
  • 初探Redis-基础类型Set

      Redis存在五种基础类型:字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)。本次列举出Set的常用操作。

      Redis官网:https://redis.io/ 

    一、集合(Set)介绍 

      Redis 中的集合是一个字符串类型的无序集合,即集合中不存在重复的元素。集合中最大的元素个数为 2^32 -1 个,集合内部的操作是基于哈希表实现的,一次添加、查找、删除操作的时间复杂度都为 O(1)。

      

    二、集合(Set)相关操作Api

    • 添加值

       

      eg:

         

    • 删除值

      

      eg:

      

    • 查看集合内所有值

      

      eg:

      

    •  查看集合中是否有给定值

      

      eg:

      

    • 计算集合中值总量

      

      eg:

      

    • 集合中随机获取n个数据

      

      eg:

      

    • 集合中随机移除n个值并返回

       

      eg:

      

    • 迭代获取集合中匹配的数据

      

      eg:

      

     

    三、集合(Set)间相关操作Api

    • 获取多集合交集结果

      

      eg:

      

    • 获取多集合交集结果并存在新集合中

      

      eg:

      

    • 获取多集合差集结果

      

       

      eg:

      

    • 获取多集合差集结果并存在新集合中

      

      eg:

      

    • 获取多集合并集结果

      

       eg:

       

    • 获取多集合并集结果并存在新集合中

      

      eg:

      

    • 集合内数据移动到新集合中

      

      eg:

      

    四、集合(Set)简单应用场景 

      简单模拟抽奖场景,利用Set中随机获取集合中一个值来完成抽奖场景,具体场景为,年会活动,用户扫码加入抽奖活动,每个用户有独自的id,抽奖项为一等奖,抽中者不能再参与抽奖活动。

    1、初始用户id

    service.SetAdd("FirstPrize", "userId1");
    service.SetAdd("FirstPrize", "userId2");
    service.SetAdd("FirstPrize", "userId3");
    service.SetAdd("FirstPrize", "userId4");
    service.SetAdd("FirstPrize", "userId5");
    service.SetAdd("FirstPrize", "userId6");

    2、完成一轮抽奖活动,随机从参与集合中获取一个用户id。

    service.SetPop<string>("FirstPrize");

    3、效果展示一下,每轮获取一个数据,并从原有集合中删除,保证了下一次抽奖活动不会再抽中原有获奖者。

      

     仓库地址:https://gitee.com/530521314/Partner.TreasureChest.git(RedisOperate文件夹)

    2020-06-14,望技术有成后能回来看见自己的脚步
  • 相关阅读:
    hdu 1849 (尼姆博弈)
    Spring中Quartz的配置
    DevExpress后置代码中初始化SQL数据源的方法
    MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!
    javascript实现的可改变滚动方向的无缝滚动
    Android本地视频播放器开发--视频解码
    uva 10196 Check The Check
    Oracle PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
    Hibernate获取Connection
    SQL查询数据封装JavaBean对象
  • 原文地址:https://www.cnblogs.com/CKExp/p/12976724.html
Copyright © 2011-2022 走看看