华夏棋牌

目录 搜索
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群计数掉落败申报) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群键槽) cluster meet cluster nodes(集群节点) cluster replicate(集群复制) cluster reset(集群重置) cluster saveconfig cluster set config epoch cluster setslot cluster slaves cluster slots readonly readwrite Connection auth echo ping quit select swapdb Geo geoadd geodist geohash geopos georadius georadiusbymember Hashes hdel hexists hget hgetall hincrby hincrbyfloat hkeys hlen hmget hmset hscan hset hsetnx hstrlen hvals HyperLogLog pfadd pfcount pfmerge Keys del dump exists expire expireat keys migrate move object persist pexpire pexpireat pttl randomkey rename renamenx restore scan sort touch ttl type unlink wait Lists blpop brpop brpoplpush lindex linsert llen lpop lpush lpushx lrange lrem lset ltrim rpop rpoplpush rpush rpushx Pub/Sub psubscribe publish pubsub punsubscribe subscribe unsubscribe Scripting eval evalsha script debug script exists script flush script kill script load Server bgrewriteaof bgsave client getname client kill client list client pause client reply client setname command command count command getkeys command info config get config resetstat config rewrite config set dbsize debug object debug segfault flushall flushdb info lastsave monitor role save shutdown slaveof slowlog time Sets sadd scard sdiff sdiffstore sinter sinterstore sismember smembers smove spop srandmember srem sscan sunion sunionstore Sorted Sets zadd zcard zcount zincrby zinterstore zlexcount zrange zrangebylex zrangebyscore zrank zrem zremrangebylex zremrangebyrank zremrangebyscore zrevrange zrevrangebylex zrevrangebyscore zrevrank zscan zscore zunionstore Strings append bitcount bitfield bitop bitpos decr decrby get getbit getrange getset incr incrby incrbyfloat mget mset msetnx psetex set setbit setex setnx setrange strlen Transactions discard exec multi unwatch watch
文字

SRANDMEMBER key [count]

自1.0.0起可用。

时间严重年夜度:没有计数参数O(1),否则O(N)其中N是经由历程的计数的相对值。

当仅用key参数挪用时,从存储在的设置值前往一个随机元素key

从 Redis 版本2.6泉源,当应用附加count参数挪用时,假定为正值,则前往count 不合元素的数组count。假定挪用负值,count则行动会发生更改,而且该敕令可以一再再三前往类似的元素。在这类情形下,前往元素的数目是指定的相对值count

华夏棋牌当仅用要害参数挪用时,操作与 SPOP 类似,但 SPOP 也会从荟萃中删除随机选择的元素,SRANDMEMBER 将只前往一个随机元素而不以任何要领更改原始荟萃。

前往值

散装串回复:没有附加count参数中的敕令前往与所述随机选择的元件的散装回复,或nilkey不存在。数组回复:当count转达附加参数时,该敕令前往一个元素数组,或许当一个空数组key不存在时。

例子

redis>  SADD myset one two three (integer) 3 

redis>  SRANDMEMBER myset "three" 

redis>  SRANDMEMBER myset 2 1) "two" 2) "three" 

redis>  SRANDMEMBER myset -5 1) "one" 2) "one" 3) "one" 4) "two" 5) "two"

计数经由历程时的行动尺度

当一个 count 参数被转达而且是一定的时间,这些元素被前往,就似乎每个被选中的元素都被从荟萃中移除一样(好比提取宾果游戏中的数字)。然则元素不会从 Set 中删除。以是基本上:

  • 没有重复的元素被前往。

  • 假定 count 年夜于 Set 外部的元素数目,则该敕令将只前往一切荟萃而不网罗其他元素。

假定计数是正数,则行动会发生变换,而且提取会发生,就似乎在每次提取后再次将提取的元素放入包中一样,是以能够会重复元素,而且总是会前往请求的元素数目,由于我们可以重复类似的元素元素一次又一次,除一个空的 Set(不存在的键),它总是会发生一个空数组。

前往元素的分配

当荟萃中的元素数目很少时,前往元素的漫衍还远未完善,这是由于我们应用了一个近似的随机元素函数,着实不克不及真正保证优胜的漫衍。

应用的算法在 dict.c 中完成,对哈希表桶阻拦采样以找到非空的桶。一旦找到一个非空的桶,由于我们在我们的哈希表完成中应用链接,以是会检查桶内的元素数目并选择一个随机元素。

这意味着假定在一切散列表中有两个非空桶,而且一个有三个元素,而此外一个只需一个,那么在桶中伶仃存在的元素将前往的概率要高许多。

上一篇: 下一篇: