redis佇列測試

2021-09-02 04:01:32 字數 1148 閱讀 6168

做了乙個測試,redis佇列,在2000個執行緒同時併發處理四萬個簡單訊息時,推入佇列會報錯;

redis.clients.jedis.exceptions.jedisconnectionexception: could not get a resource from the pool

從佇列裡面拿訊息時,完全沒問題,不報錯;(可能是訊息內容比較簡單)

如果訊息檢入或者檢出出錯,做setnx鎖,會嚴重限制速度;應該有容錯錯失,比如把異常的訊息重新放入緩衝中,再進行一次推入或出列操作

機器的問題,吞吐量

入隊時吞吐量是40000/66338 s 大概也有每秒六七千;

出隊時吞吐量是40000/65047 s 多次嘗試,大概比入隊慢那麼幾秒

如果執行緒數》2000個,可能吞吐量更大;我想應該超過10000/s;

**jedispoolconfig config = new jedispoolconfig();

config.setmaxactive(5000);

config.setmaxwait(1000*10);

config.setmaxidle(300);

config.settestonborrow(true);

public static void main(string args) throws piredi***ecption, interruptedexception

new thread() catch (interruptedexception e1)

for(int a=0;a<200;a++) catch (piredi***ecption e)

}system.out.println("-------------------");

latch2.countdown();

}}.start();

latch.countdown();

}latch2.await();

system.out.println("*****==="+(system.currenttimemillis()-start));

system.out.println(redismanager.getinstance().len("a"));

// for(int a = 0;a// }

}

redis 佇列 redis 延時佇列

定時發公告 使用者下單30分鐘後未付款自動關閉訂單 使用者下單後延時簡訊提醒 延時關閉空閒客戶端連線 使用redis提供的有序資料結構zset,把過期時間戳作為score。public void produce string topic,string msg,date date 生產訊息 於 消費 ...

基於Redis的訊息佇列封裝和測試

created by phpstorm.user huyanping date 14 8 19 time 下午12 10 基於redis的訊息佇列封裝 class redismessagequeue else 析構函式,關閉redis鏈結,使用長連線時,最好主動呼叫關閉 public functio...

Redis訊息佇列

redis的訊息佇列使用簡單,沒有什麼配置,比activemq要輕量級太多,當然功能也比較簡單,如果只需要簡單的訂閱以及發布,可以考慮使用它。訂閱操作 命令為 subscribe channel channel 如 1 所示,即成功訂閱頻道 redis.blog 發布操作 命令為publish ch...