redis實現簡單佇列

2022-09-28 06:42:10 字數 1179 閱讀 8729

在工作中,時常會有用到佇列的場景,比較常見的用rabbitmq這些專業的元件,官網位址是:重要的是官方有.net的客戶端,但是如果對rabbitmq不熟悉的話,建議使用第三方封裝好的 easynetq,rabbitmq比oqiwxfz較適合對安全性,穩定性要求較高的地方,但有時我們也會有對這方面要求不是很高的場景,比如:文章閱讀數,實時性要求不是很高的地方,所以我想到了用redis來做佇列。

redis 的list結構本身就是乙個鍊錶 (雙向鍊錶),所以符合我們的佇列先進先出的要求。

我用的是stackexchange.redis 這個元件來操作redis,以前一直用 service.stack.redis,後來該類庫公升級後對個人使用有次數限制,需要付費使用才能沒有呼叫限制.

操作redis簡單封裝如下:

public static class redishelper

); public static connectionmultiplexer instance}}

有了這個操作類後,我們就可以操作redis了,簡單的對 list 的操作如下:

///

/// 簡單 redis 佇列

///

public class ******redisqueue

public string rightpop(string key)

}測試**如下:

首先需要乙個生產資料的程式

static void main(string args)

});

system.threading.task程式設計客棧s.task.factory.startnew(() =>

});system.threading.tasks.task.factory.startnew(() =>

});system.threading.tasks.task.factory.startnew(() =>

});oqiwxfz system.threading.tasks.task.factory.startnew(() =>

});console.readkey();

}然後有消費佇列的程式:

static void main(string args)

}測試結果截圖

對可靠性和穩定性要求不高的應用場景,可以使用redis簡單方便的實現。

本文標題: redis實現簡單佇列

本文位址:

redis佇列 生產消費模式 簡單實現

生產消費,不外乎就是生產新的訊息插入到佇列尾巴,消費者從佇列頭部取訊息。基於此,簡單實現如下 還有一種稍微複雜的實現,是結合了spring的實現,複雜實現 往列表尾部插入資料 param key param value public static void rpush string key,stri...

redis佇列實現

redis佇列,使用了list列表資料結構,lpush生成,rpop消費模式。yiic queue worker qname 是佇列的名稱,例如 current,position等等,這只是消費者,即佇列處理程式。這是乙個典行的yii的命令列程式,檔案在 path to protected comm...

redis實現訊息佇列

用redis實現乙個訊息通知系統,總結了一下技術細節,其中演示 如果沒有特殊說明,使用的都是phpredis擴充套件來實現的。記憶體 比如要推送一條全域性訊息,如果真的給所有使用者都推送一遍的話,那麼會占用很大的記憶體,實際上不管粘性有多高的產品,活躍使用者同全部使用者比起來,都會小很多,所以如果只...