-
rpoplpush的使用場景:
redis鏈表經(jīng)常用于消息隊列的服務(wù),完成多個消息之間的交互,假設(shè)一個應(yīng)用程序正在執(zhí)行l(wèi)push,向鏈表中添加新的元素,我們將這樣的程序稱為生產(chǎn)者,另一個程序在執(zhí)行rpop操作,從列表中取出元素,稱之為消費(fèi)者,與此同時,消費(fèi)者程序,在取出元素后立刻崩潰,由于該消息被取出,沒處理,那認(rèn)為消息已經(jīng)丟失了,由此可能導(dǎo)致業(yè)務(wù)數(shù)據(jù)的丟失,或者業(yè)務(wù)狀態(tài)的不一致,可以通過rpoplpush命令,消費(fèi)者程序在消費(fèi)隊列中取出元素之后再將它插入到一個備份的隊列中,直到消費(fèi)者程序完成正常的邏輯處理后,再將消費(fèi)從備份隊列中刪除,這樣可以提供一個守護(hù)的線程。當(dāng)發(fā)現(xiàn)備份隊列中的消息過期的時候,可以將他重新放回主消息的隊列當(dāng)中,以便其他的消費(fèi)者可以繼續(xù)去處理。
查看全部 -
存儲list的常用命令:
兩端添加,查看列表,兩端彈出,獲取列表元素個數(shù)
查看全部 -
Redis的數(shù)據(jù)結(jié)構(gòu)
存儲list?
ArrayList使用數(shù)組方式
LinkedList使用雙向鏈接方式
查看全部 -
redis的數(shù)據(jù)結(jié)構(gòu):
存儲Hash
String key 和String Value的map容器
每個Hash可以存儲很多的個鍵值對
查看全部
舉報