鍍金池/ 問答/人工智能  PHP/ redis實(shí)現(xiàn)無重復(fù)隊(duì)列

redis實(shí)現(xiàn)無重復(fù)隊(duì)列

redis隊(duì)列l(wèi)push rpush插入隊(duì)列是沒有判斷重復(fù)的,如何做到有的重復(fù)的時(shí)候不插入呢??
redis是有一個(gè)集合不允許重復(fù),他們2個(gè)如何結(jié)合起來實(shí)現(xiàn)呢???

回答
編輯回答
賤人曾

1、set進(jìn)去的數(shù)據(jù)就是有序和不重復(fù)的,所以不會(huì)出現(xiàn)重復(fù)的情況
2、你每次執(zhí)行成功之后就要?jiǎng)h除集合里面的數(shù)據(jù)
3、如果執(zhí)行失敗就將失敗的數(shù)據(jù)存放在另一個(gè)集合中使用多線程進(jìn)行同步處理

2018年2月14日 00:27
編輯回答
黑與白

如你所說,可以先將你的數(shù)據(jù)嘗試放入 SET 中,如果沒有存入,說明 SET 中就有這個(gè)數(shù)據(jù),那就不要執(zhí)行 push 命令了。
不然的話可以考慮使用 lua 完成上述功能,然后作為一個(gè)指令提供給調(diào)用方。

2018年8月2日 09:01
編輯回答
避風(fēng)港

簡(jiǎn)單點(diǎn),先 lrem 再 push

2017年3月27日 08:31