优化CacheSource

This commit is contained in:
Redkale
2022-12-22 15:02:41 +08:00
parent e79427f708
commit 2d06fd6ea9
3 changed files with 32 additions and 3 deletions

View File

@@ -33,9 +33,10 @@ module redkale {
exports org.redkale.util; exports org.redkale.util;
exports org.redkale.watch; exports org.redkale.watch;
uses org.redkale.mq.MessageAgent; uses org.redkale.boot.PropertiesAgentProvider;
uses org.redkale.cluster.ClusterAgent; uses org.redkale.cluster.ClusterAgentProvider;
uses org.redkale.convert.ConvertProvider; uses org.redkale.convert.ConvertProvider;
uses org.redkale.mq.MessageAgentProvider;
uses org.redkale.source.CacheSourceProvider; uses org.redkale.source.CacheSourceProvider;
uses org.redkale.source.DataSourceProvider; uses org.redkale.source.DataSourceProvider;
uses org.redkale.util.ResourceAnnotationProvider; uses org.redkale.util.ResourceAnnotationProvider;

View File

@@ -1485,6 +1485,26 @@ public final class CacheMemorySource extends AbstractCacheSource {
return CompletableFuture.runAsync(() -> setBytes(key, value), getExecutor()).whenComplete(futureCompleteConsumer); 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<Void> setnxBytesAsync(final String key, byte[] value) {
return CompletableFuture.runAsync(() -> setnxBytes(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
}
@Override
public <T> void setnxBytes(final String key, final Convert convert, final Type type, final T value) {
setnx(CacheEntryType.BYTES, key, convert.convertToBytes(type, value));
}
@Override
public <T> CompletableFuture<Void> 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 @Override
public void setexBytes(final String key, final int expireSeconds, final byte[] value) { public void setexBytes(final String key, final int expireSeconds, final byte[] value) {
set(CacheEntryType.BYTES, expireSeconds, key, value); set(CacheEntryType.BYTES, expireSeconds, key, value);

View File

@@ -89,7 +89,9 @@ public interface CacheSource extends Resourcable {
public void setnxLong(final String key, final long value); 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 <T> void setnxBytes(final String key, final Convert convert, final Type type, final T value);
//------------------------ setex ------------------------ //------------------------ setex ------------------------
public <T> void setex(final String key, final int expireSeconds, final Convert convert, final T value); public <T> 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 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 byte[] value);
public <T> void setexBytes(final String key, final int expireSeconds, final Convert convert, final Type type, final T value); public <T> 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<Void> setnxLongAsync(final String key, long value); public CompletableFuture<Void> setnxLongAsync(final String key, long value);
public CompletableFuture<Void> setnxBytesAsync(final String key, final byte[] value);
public <T> CompletableFuture<Void> setnxBytesAsync(final String key, final Convert convert, final Type type, final T value);
//------------------------ setexAsync ------------------------ //------------------------ setexAsync ------------------------
public <T> CompletableFuture<Void> setexAsync(final String key, final int expireSeconds, final Convert convert, final T value); public <T> CompletableFuture<Void> setexAsync(final String key, final int expireSeconds, final Convert convert, final T value);