redis佇列的批量獲取一直以來讓我很困惑,今天又遇到了同樣的問題,經過幾番波折,終於找到了乙個方法。分享一下
只需要redis自帶的兩個方法(lrange, ltrim)
lrange可以獲取佇列中某一段的資料,例如獲取佇列中1-10的資料,lrange key 1 10
ltrim 可以保留所選區間的所有值,也就是可以刪除所選區間之外的所有值, 例如 ltrim key 5 10 就會刪除 除了5-10之外的所有值
想批量獲取佇列內容,lrange 乙個方法就可以做到,但是獲取到之後並不會刪除,所以並不能達到目的
為了達到目的,兩個方法相互配合
例如 每次獲取前10條資料,就可以這樣:
先用lrange key 1 10 獲取到內容 再用 ltrim key 10 -1(到-1表示開始到最後)保留10 到最後的所有資料,也就是刪除1-10的資料
但是ltrim是從左邊刪除,所以,在往佇列新增內容時,需要用rpush。
redis 佇列 redis 延時佇列
定時發公告 使用者下單30分鐘後未付款自動關閉訂單 使用者下單後延時簡訊提醒 延時關閉空閒客戶端連線 使用redis提供的有序資料結構zset,把過期時間戳作為score。public void produce string topic,string msg,date date 生產訊息 於 消費 ...
redis批量刪除
redis中沒有批量刪除資料的指令,但可以借助linux的指令xargs來批量刪除 如果redis cli沒有設定成系統變數,需要指定redis cli的完整路徑,如 如果要指定 redis 資料庫訪問密碼,使用下面的命令 如果要訪問 redis 中特定的資料庫,使用下面的命令 刪除所有key,可以...
mysql 批量替換 內容
mysql批量替換字段內容語法 update 表名set 字段 replace 字段,原內容 替換內容 where 條件 支援多欄位 update 表名set 字段 replace 字段,原內容 替換內容 字段 replace 字段,原內容 替換內容 where 條件 例子 update ecs g...