亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群計(jì)數(shù)失敗報(bào)告) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群鍵槽) cluster meet cluster nodes(集群節(jié)點(diǎn)) cluster replicate(集群復(fù)制) 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
characters

SRANDMEMBER key [count]

自1.0.0起可用。

時(shí)間復(fù)雜度:沒有計(jì)數(shù)參數(shù)O(1),否則O(N)其中N是通過的計(jì)數(shù)的絕對值。

當(dāng)僅用key參數(shù)調(diào)用時(shí),從存儲(chǔ)在的設(shè)置值返回一個(gè)隨機(jī)元素key

從 Redis 版本2.6開始,當(dāng)使用附加count參數(shù)調(diào)用時(shí),如果為正值,則返回count 不同元素的數(shù)組count。如果調(diào)用負(fù)值,count則行為會(huì)發(fā)生更改,并且該命令可以多次返回相同的元素。在這種情況下,返回元素的數(shù)量是指定的絕對值count。

當(dāng)僅用關(guān)鍵參數(shù)調(diào)用時(shí),操作與 SPOP 類似,但 SPOP 也會(huì)從集合中刪除隨機(jī)選擇的元素,SRANDMEMBER 將只返回一個(gè)隨機(jī)元素而不以任何方式更改原始集合。

返回值

散裝串答復(fù):沒有附加count參數(shù)中的命令返回與所述隨機(jī)選擇的元件的散裝回復(fù),或nil當(dāng)key不存在。數(shù)組回復(fù):當(dāng)count傳遞附加參數(shù)時(shí),該命令返回一個(gè)元素?cái)?shù)組,或者當(dāng)一個(gè)空數(shù)組key不存在時(shí)。

例子

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"

計(jì)數(shù)通過時(shí)的行為規(guī)范

當(dāng)一個(gè) count 參數(shù)被傳遞并且是肯定的時(shí)候,這些元素被返回,就好像每個(gè)被選中的元素都被從集合中移除一樣(比如提取賓果游戲中的數(shù)字)。但是元素不會(huì)從 Set 中刪除。所以基本上:

  • 沒有重復(fù)的元素被返回。

  • 如果 count 大于 Set 內(nèi)部的元素?cái)?shù)量,則該命令將只返回整個(gè)集合而不包含其他元素。

如果計(jì)數(shù)是負(fù)數(shù),則行為會(huì)發(fā)生變化,并且提取會(huì)發(fā)生,就好像在每次提取后再次將提取的元素放入包中一樣,因此可能會(huì)重復(fù)元素,并且總是會(huì)返回請求的元素?cái)?shù)量,因?yàn)槲覀兛梢灾貜?fù)相同的元素元素一次又一次,除了一個(gè)空的 Set(不存在的鍵),它總是會(huì)產(chǎn)生一個(gè)空數(shù)組。

返回元素的分配

當(dāng)集合中的元素?cái)?shù)量很少時(shí),返回元素的分布還遠(yuǎn)未完善,這是因?yàn)槲覀兪褂昧艘粋€(gè)近似的隨機(jī)元素函數(shù),并不能真正保證良好的分布。

使用的算法在 dict.c 中實(shí)現(xiàn),對哈希表桶進(jìn)行采樣以找到非空的桶。一旦找到一個(gè)非空的桶,因?yàn)槲覀冊谖覀兊墓1韺?shí)現(xiàn)中使用鏈接,所以會(huì)檢查桶內(nèi)的元素?cái)?shù)量并選擇一個(gè)隨機(jī)元素。

這意味著如果在整個(gè)散列表中有兩個(gè)非空桶,并且一個(gè)有三個(gè)元素,而另一個(gè)只有一個(gè),那么在桶中單獨(dú)存在的元素將返回的概率要高得多。

Previous article: Next article: