zoukankan      html  css  js  c++  java
  • Redis命令拾遗四——集合类型(命令补充)

    SCARD Key获得执行集合中元素的数量。

    SDIFFSTORE 目标键 keys ...  将集合做DIFF差集操作,并存储在目标键中。

    另外同样有SINTERSTORE,SUNIONSTORE.对于集合还不了解的童鞋,请看上篇文章。

    最后一个要介绍的命令就是SRANDMEMBER Key。从目标键中取随机一个元素。他是很有趣的。

    目前SetA中有十个元素,当你指定的返回数量为正数,返回相应数量的随机数,如果大于集合数量,那么将集合全部元素返回。

    但是如果你指定为负数,则会返回|负数|个,也就是说你指定-100,那么即使你只有十个元素,也会给你取出一百个元素。

    另外我们可以看到上三张结果图,实际上,有时候也并不是那么随机,第一张和第三张图9的次数明显多,第二张图1的次数明显多。这是由于集合的存储结构——散列表造成的。其散列函数为了实现O(1)复杂度,会将元素映射到不同的“桶”当中,比如元素9被存到第一个桶当中,那么下一次进行随机数选择时,Redis先选择桶,那么自然第一个桶中数据少的话,被取出来的几率也就大大增加。

  • 相关阅读:
    Distinct Substrings(spoj 694)
    Musical Theme
    Milk Patterns(poj 3261)
    Repeated Substrings(UVAlive 6869)
    喵星球上的点名(bzoj 2754)
    滑雪与时间胶囊(bzoj 2753)
    莫比乌斯函数之和(51nod 1244)
    欧拉函数之和(51nod 1239)
    数表(bzoj 3529)
    欧拉函数模板
  • 原文地址:https://www.cnblogs.com/chenliyang/p/6595429.html
Copyright © 2011-2022 走看看