diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index 6fb19bf0e..b72eee6d8 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -667,6 +667,39 @@ public class CacheMemorySource extends AbstractService impleme return (Collection) getAndRefresh(key, expireSeconds); } + @Override + public boolean existsSetItem(final String key, final V value) { + Collection list = getCollection(key); + return list != null && list.contains(value); + } + + @Override + public CompletableFuture existsSetItemAsync(final String key, final V value) { + return CompletableFuture.supplyAsync(() -> existsSetItem(key, value), getExecutor()); + } + + @Override + public boolean existsStringSetItem(final String key, final String value) { + Collection list = getStringCollection(key); + return list != null && list.contains(value); + } + + @Override + public CompletableFuture existsStringSetItemAsync(final String key, final String value) { + return CompletableFuture.supplyAsync(() -> existsStringSetItem(key, value), getExecutor()); + } + + @Override + public boolean existsLongSetItem(final String key, final long value) { + Collection list = getLongCollection(key); + return list != null && list.contains(value); + } + + @Override + public CompletableFuture existsLongSetItemAsync(final String key, final long value) { + return CompletableFuture.supplyAsync(() -> existsLongSetItem(key, value), getExecutor()); + } + @Override @RpcMultiRun public Collection getLongCollectionAndRefresh(final String key, final int expireSeconds) { diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java index 7b9da9f5d..59f553e21 100644 --- a/src/org/redkale/source/CacheSource.java +++ b/src/org/redkale/source/CacheSource.java @@ -66,6 +66,8 @@ public interface CacheSource { public void removeListItem(final String key, final V value); + public boolean existsSetItem(final String key, final V value); + public void appendSetItem(final String key, final V value); public void removeSetItem(final String key, final V value); @@ -92,6 +94,8 @@ public interface CacheSource { public void removeStringListItem(final String key, final String value); + public boolean existsStringSetItem(final String key, final String value); + public void appendStringSetItem(final String key, final String value); public void removeStringSetItem(final String key, final String value); @@ -112,6 +116,8 @@ public interface CacheSource { public void removeLongListItem(final String key, final long value); + public boolean existsLongSetItem(final String key, final long value); + public void appendLongSetItem(final String key, final long value); public void removeLongSetItem(final String key, final long value); @@ -151,6 +157,8 @@ public interface CacheSource { public CompletableFuture removeListItemAsync(final String key, final V value); + public CompletableFuture existsSetItemAsync(final String key, final V value); + public CompletableFuture appendSetItemAsync(final String key, final V value); public CompletableFuture removeSetItemAsync(final String key, final V value); @@ -177,6 +185,8 @@ public interface CacheSource { public CompletableFuture removeStringListItemAsync(final String key, final String value); + public CompletableFuture existsStringSetItemAsync(final String key, final String value); + public CompletableFuture appendStringSetItemAsync(final String key, final String value); public CompletableFuture removeStringSetItemAsync(final String key, final String value); @@ -197,6 +207,8 @@ public interface CacheSource { public CompletableFuture removeLongListItemAsync(final String key, final long value); + public CompletableFuture existsLongSetItemAsync(final String key, final long value); + public CompletableFuture appendLongSetItemAsync(final String key, final long value); public CompletableFuture removeLongSetItemAsync(final String key, final long value);