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

目錄 搜尋
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
文字

RPOPLPUSH source destination

自1.2.0起可用。

時(shí)間復(fù)雜度: O(1)

原子返回并移除存儲(chǔ)在列表中的列表的最后一個(gè)元素(尾部)source,并按下存儲(chǔ)在列表中第一個(gè)元素(頭部)的元素destination。

例如:考慮source拿著清單a,b,c,然后destination拿著清單x,y,z。執(zhí)行RPOPLPUSH導(dǎo)致source持有a,bdestination持有c,x,y,z。

如果source不存在,nil則返回該值并且不執(zhí)行任何操作。如果sourcedestination相同,該操作相當(dāng)于從列表中刪除最后一個(gè)元素,并將其作為列表的第一個(gè)元素推入,因此可以將其視為列表旋轉(zhuǎn)命令。

返回值

批量字符串回復(fù):正在彈出和推送的元素。

例子

redis>  RPUSH mylist "one" (integer) 1 

redis>  RPUSH mylist "two" (integer) 2 

redis>  RPUSH mylist "three" (integer) 3 

redis>  RPOPLPUSH mylist myotherlist "three" 

redis>  LRANGE mylist 0 -1 1) "one" 2) "two" 

redis>  LRANGE myotherlist 0 -1 1) "three"

模式:可靠的隊(duì)列

Redis通常用作消息傳遞服務(wù)器來(lái)實(shí)現(xiàn)后臺(tái)作業(yè)或其他類型的消息傳遞任務(wù)的處理。通??梢酝ㄟ^(guò)將值推入生產(chǎn)者端的列表中,并使用RPOP(使用輪詢)在消費(fèi)者端等待此值,或通過(guò)阻止操作為客戶端提供更好的服務(wù)來(lái)實(shí)現(xiàn)BRPOP,從而獲得簡(jiǎn)單的隊(duì)列形式。

然而,在這種情況下,所獲得的隊(duì)列是不可靠的,因?yàn)榭赡軙?huì)丟失消息,例如在存在網(wǎng)絡(luò)問(wèn)題的情況下或消費(fèi)者在收到消息之后崩潰但仍然要處理的情況下。

RPOPLPUSH(或阻止變體的BRPOPLPUSH)提供了一種避免此問(wèn)題的方法:消費(fèi)者提取消息并同時(shí)將其推入處理列表。一旦消息已被處理,它將使用LREM命令來(lái)從處理列表中刪除消息。

額外的客戶端可能會(huì)監(jiān)視處理列表中保留的項(xiàng)目太多時(shí)間,并且會(huì)在需要時(shí)再次將這些超時(shí)項(xiàng)目推入隊(duì)列中。

模式:循環(huán)列表

使用具有相同源和目標(biāo)密鑰的RPOPLPUSH,客戶端可以使用單個(gè)LRANGE操作在O(N)中一個(gè)接一個(gè)地訪問(wèn)N元素列表中的所有元素,而無(wú)需使用單個(gè)LRANGE操作將完整列表從服務(wù)器傳輸?shù)娇蛻舳恕?/p>

即使有以下兩個(gè)條件,上述模式仍然有效:

  • 有多個(gè)客戶端輪換列表:他們將獲取不同的元素,直到列表中的所有元素都被訪問(wèn),并且進(jìn)程重新啟動(dòng)。

  • 即使其他客戶在列表末尾積極推出新項(xiàng)目。

上述內(nèi)容使得實(shí)現(xiàn)一套系統(tǒng)必須由N名工作人員盡可能快地處理一套物品變得非常簡(jiǎn)單。一個(gè)例子是一個(gè)監(jiān)控系統(tǒng),它必須使用大量的并行工作人員來(lái)檢查一組網(wǎng)站是否可以訪問(wèn),并盡可能縮短延遲。

請(qǐng)注意,這種工作者的實(shí)現(xiàn)是可升級(jí)且可靠的,因?yàn)榧词瓜G失,項(xiàng)目仍然在隊(duì)列中,并且將在下一次迭代中處理。

上一篇: 下一篇: