From 40918e627758fee0433a0c0d52d50a91a49cf810 Mon Sep 17 00:00:00 2001 From: rikako <496063163@qq.com> Date: Tue, 7 Feb 2023 23:11:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90redisson=E5=88=86=E5=B8=83?= =?UTF-8?q?=E5=BC=8F=E5=AE=B9=E5=99=A8=E7=9A=84=E6=96=87=E6=A1=A3=E9=98=85?= =?UTF-8?q?=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring/redisson/redisson.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/spring/redisson/redisson.md b/spring/redisson/redisson.md index 09ee0b6..01cb68e 100644 --- a/spring/redisson/redisson.md +++ b/spring/redisson/redisson.md @@ -1176,4 +1176,39 @@ buffer.add(6); - tryTransfer会非阻塞的添加元素,当存在消费者调用poll获取当前元素时,该方法会将元素交给消费者,否则返回false。 - transfer会阻塞等待,直到有消费者线程来获取该元素 > 当调用阻塞版本trasfer之后,直到该transfer返回,其他线程无法向TransferQueue中添加元素。 - \ No newline at end of file +```java +RTransferQueue queue = redisson.getTransferQueue("myCountDownLatch"); + +queue.transfer("data"); +// or try transfer immediately +queue.tryTransfer("data"); +// or try transfer up to 10 seconds +queue.tryTransfer("data", 10, TimeUnit.SECONDS); + +// in other thread or JVM + +queue.take(); +// or +queue.poll(); +``` +### Time Series +基于Redis的TimeSeries允许按照Timestamp来存储值,并且支持为entry设置ttl。 +TimeSeries的使用如下所示: +```java +RTimeSeries ts = redisson.getTimeSeries("myTimeSeries"); + +ts.add(201908110501, "10%"); +ts.add(201908110502, "30%"); +ts.add(201908110504, "10%"); +ts.add(201908110508, "75%"); + +// entry time-to-live is 10 hours +ts.add(201908110510, "85%", 10, TimeUnit.HOURS); +ts.add(201908110510, "95%", 10, TimeUnit.HOURS); + +String value = ts.get(201908110508); +ts.remove(201908110508); + +Collection values = ts.pollFirst(2); +Collection range = ts.range(201908110501, 201908110508); +``` \ No newline at end of file