From 2d06fd6ea99fd00597ca2bc06cd79cdd78fb7afc Mon Sep 17 00:00:00 2001 From: Redkale Date: Thu, 22 Dec 2022 15:02:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96CacheSource?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/module-info.java | 5 +++-- .../org/redkale/source/CacheMemorySource.java | 20 +++++++++++++++++++ .../java/org/redkale/source/CacheSource.java | 10 +++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 28ec122fe..14ac49b8a 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -33,9 +33,10 @@ module redkale { exports org.redkale.util; exports org.redkale.watch; - uses org.redkale.mq.MessageAgent; - uses org.redkale.cluster.ClusterAgent; + uses org.redkale.boot.PropertiesAgentProvider; + uses org.redkale.cluster.ClusterAgentProvider; uses org.redkale.convert.ConvertProvider; + uses org.redkale.mq.MessageAgentProvider; uses org.redkale.source.CacheSourceProvider; uses org.redkale.source.DataSourceProvider; uses org.redkale.util.ResourceAnnotationProvider; diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index 239c9e229..fb953c6ca 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -1485,6 +1485,26 @@ public final class CacheMemorySource extends AbstractCacheSource { return CompletableFuture.runAsync(() -> setBytes(key, value), getExecutor()).whenComplete(futureCompleteConsumer); } + @Override + public void setnxBytes(final String key, final byte[] value) { + setnx(CacheEntryType.BYTES, key, value); + } + + @Override + public CompletableFuture setnxBytesAsync(final String key, byte[] value) { + return CompletableFuture.runAsync(() -> setnxBytes(key, value), getExecutor()).whenComplete(futureCompleteConsumer); + } + + @Override + public void setnxBytes(final String key, final Convert convert, final Type type, final T value) { + setnx(CacheEntryType.BYTES, key, convert.convertToBytes(type, value)); + } + + @Override + public CompletableFuture setnxBytesAsync(final String key, final Convert convert, final Type type, final T value) { + return CompletableFuture.runAsync(() -> setnxBytes(key, convert, type, value), getExecutor()).whenComplete(futureCompleteConsumer); + } + @Override public void setexBytes(final String key, final int expireSeconds, final byte[] value) { set(CacheEntryType.BYTES, expireSeconds, key, value); diff --git a/src/main/java/org/redkale/source/CacheSource.java b/src/main/java/org/redkale/source/CacheSource.java index af7408dc6..b0e6f78bc 100644 --- a/src/main/java/org/redkale/source/CacheSource.java +++ b/src/main/java/org/redkale/source/CacheSource.java @@ -89,7 +89,9 @@ public interface CacheSource extends Resourcable { public void setnxLong(final String key, final long value); - public void setexLong(final String key, final int expireSeconds, final long value); + public void setnxBytes(final String key, final byte[] value); + + public void setnxBytes(final String key, final Convert convert, final Type type, final T value); //------------------------ setex ------------------------ public void setex(final String key, final int expireSeconds, final Convert convert, final T value); @@ -100,6 +102,8 @@ public interface CacheSource extends Resourcable { public void setexString(final String key, final int expireSeconds, final String value); + public void setexLong(final String key, final int expireSeconds, final long value); + public void setexBytes(final String key, final int expireSeconds, final byte[] value); public void setexBytes(final String key, final int expireSeconds, final Convert convert, final Type type, final T value); @@ -344,6 +348,10 @@ public interface CacheSource extends Resourcable { public CompletableFuture setnxLongAsync(final String key, long value); + public CompletableFuture setnxBytesAsync(final String key, final byte[] value); + + public CompletableFuture setnxBytesAsync(final String key, final Convert convert, final Type type, final T value); + //------------------------ setexAsync ------------------------ public CompletableFuture setexAsync(final String key, final int expireSeconds, final Convert convert, final T value);