CacheSource增加setnx、hsetnx系列方法
This commit is contained in:
@@ -245,6 +245,31 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
hset(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void hsetnx(final String key, final String field, final Convert convert, final T value) {
|
||||
hsetnx(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void hsetnx(final String key, final String field, final Type type, final T value) {
|
||||
hsetnx(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void hsetnx(final String key, final String field, final Convert convert, final Type type, final T value) {
|
||||
hsetnx(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hsetnxString(final String key, final String field, final String value) {
|
||||
hsetnx(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hsetnxLong(final String key, final String field, final long value) {
|
||||
hsetnx(CacheEntryType.MAP, key, field, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hmset(final String key, final Serializable... values) {
|
||||
for (int i = 0; i < values.length; i += 2) {
|
||||
@@ -426,6 +451,31 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
return CompletableFuture.runAsync(() -> hsetLong(key, field, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Convert convert, final T value) {
|
||||
return CompletableFuture.runAsync(() -> hsetnx(key, field, convert, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Type type, final T value) {
|
||||
return CompletableFuture.runAsync(() -> hsetnx(key, field, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Convert convert, final Type type, final T value) {
|
||||
return CompletableFuture.runAsync(() -> hsetnx(key, field, convert, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> hsetnxStringAsync(final String key, final String field, final String value) {
|
||||
return CompletableFuture.runAsync(() -> hsetnxString(key, field, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> hsetnxLongAsync(final String key, final String field, final long value) {
|
||||
return CompletableFuture.runAsync(() -> hsetnxLong(key, field, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> hmsetAsync(final String key, final Serializable... values) {
|
||||
return CompletableFuture.runAsync(() -> hmset(key, values), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
@@ -550,7 +600,7 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
CacheEntry entry = container.get(key);
|
||||
if (entry == null) {
|
||||
entry = new CacheEntry(cacheType, key, value, null, null, null);
|
||||
container.putIfAbsent(key, entry);
|
||||
container.put(key, entry);
|
||||
} else {
|
||||
entry.expireSeconds = 0;
|
||||
entry.objectValue = value;
|
||||
@@ -558,12 +608,24 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
}
|
||||
}
|
||||
|
||||
protected void setnx(CacheEntryType cacheType, String key, Object value) {
|
||||
if (key == null) return;
|
||||
CacheEntry entry = container.get(key);
|
||||
if (entry == null) {
|
||||
entry = new CacheEntry(cacheType, key, value, null, null, null);
|
||||
container.putIfAbsent(key, entry);
|
||||
} else {
|
||||
entry.expireSeconds = 0;
|
||||
entry.lastAccessed = (int) (System.currentTimeMillis() / 1000);
|
||||
}
|
||||
}
|
||||
|
||||
protected void hset(CacheEntryType cacheType, String key, String field, Object value) {
|
||||
if (key == null) return;
|
||||
CacheEntry entry = container.get(key);
|
||||
if (entry == null) {
|
||||
entry = new CacheEntry(CacheEntryType.MAP, key, value, null, null, new ConcurrentHashMap<>());
|
||||
container.putIfAbsent(key, entry);
|
||||
container.put(key, entry);
|
||||
entry.mapValue.put(field, value);
|
||||
} else {
|
||||
entry.expireSeconds = 0;
|
||||
@@ -572,6 +634,19 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
}
|
||||
}
|
||||
|
||||
protected void hsetnx(CacheEntryType cacheType, String key, String field, Object value) {
|
||||
if (key == null) return;
|
||||
CacheEntry entry = container.get(key);
|
||||
if (entry == null) {
|
||||
entry = new CacheEntry(CacheEntryType.MAP, key, value, null, null, new ConcurrentHashMap<>());
|
||||
container.putIfAbsent(key, entry);
|
||||
entry.mapValue.putIfAbsent(field, value);
|
||||
} else {
|
||||
entry.expireSeconds = 0;
|
||||
entry.lastAccessed = (int) (System.currentTimeMillis() / 1000);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void set(String key, Convert convert, T value) {
|
||||
set(CacheEntryType.OBJECT, key, value);
|
||||
@@ -587,6 +662,21 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
set(CacheEntryType.OBJECT, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void setnx(String key, Convert convert, T value) {
|
||||
setnx(CacheEntryType.OBJECT, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void setnx(String key, Type type, T value) {
|
||||
setnx(CacheEntryType.OBJECT, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void setnx(String key, Convert convert, Type type, T value) {
|
||||
setnx(CacheEntryType.OBJECT, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getSet(String key, Type type, T value) {
|
||||
T old = get(key, type);
|
||||
@@ -606,11 +696,21 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
set(CacheEntryType.STRING, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setnxString(String key, String value) {
|
||||
setnx(CacheEntryType.STRING, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLong(String key, long value) {
|
||||
set(CacheEntryType.LONG, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setnxLong(String key, long value) {
|
||||
setnx(CacheEntryType.LONG, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> setAsync(String key, Convert convert, T value) {
|
||||
return CompletableFuture.runAsync(() -> set(key, convert, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
@@ -626,6 +726,21 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
return CompletableFuture.runAsync(() -> set(key, convert, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> setnxAsync(String key, Convert convert, T value) {
|
||||
return CompletableFuture.runAsync(() -> setnx(key, convert, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> setnxAsync(String key, Type type, T value) {
|
||||
return CompletableFuture.runAsync(() -> setnx(key, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<Void> setnxAsync(String key, Convert convert, Type type, T value) {
|
||||
return CompletableFuture.runAsync(() -> setnx(key, convert, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<T> getSetAsync(String key, Type type, T value) {
|
||||
return CompletableFuture.runAsync(() -> getSet(key, type, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
@@ -641,6 +756,11 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
return CompletableFuture.runAsync(() -> setString(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> setnxStringAsync(String key, String value) {
|
||||
return CompletableFuture.runAsync(() -> setnxString(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<String> getSetStringAsync(String key, String value) {
|
||||
return CompletableFuture.runAsync(() -> getSetString(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
@@ -651,6 +771,11 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
return CompletableFuture.runAsync(() -> setLong(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> setnxLongAsync(String key, long value) {
|
||||
return CompletableFuture.runAsync(() -> setnxLong(key, value), getExecutor()).whenComplete(futureCompleteConsumer);
|
||||
}
|
||||
|
||||
protected void set(CacheEntryType cacheType, int expireSeconds, String key, Object value) {
|
||||
if (key == null) return;
|
||||
CacheEntry entry = container.get(key);
|
||||
|
||||
@@ -8,8 +8,8 @@ package org.redkale.source;
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import org.redkale.convert.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.redkale.convert.Convert;
|
||||
import org.redkale.util.Resourcable;
|
||||
|
||||
/**
|
||||
@@ -67,6 +67,16 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public void hsetLong(final String key, final String field, final long value);
|
||||
|
||||
public <T> void hsetnx(final String key, final String field, final Convert convert, final T value);
|
||||
|
||||
public <T> void hsetnx(final String key, final String field, final Type type, final T value);
|
||||
|
||||
public <T> void hsetnx(final String key, final String field, final Convert convert, final Type type, final T value);
|
||||
|
||||
public void hsetnxString(final String key, final String field, final String value);
|
||||
|
||||
public void hsetnxLong(final String key, final String field, final long value);
|
||||
|
||||
public void hmset(final String key, final Serializable... values);
|
||||
|
||||
public <T> List<T> hmget(final String key, final Type type, final String... fields);
|
||||
@@ -90,6 +100,12 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public <T> void set(final String key, final Convert convert, final Type type, final T value);
|
||||
|
||||
public <T> void setnx(final String key, final Convert convert, final T value);
|
||||
|
||||
public <T> void setnx(final String key, final Type type, final T value);
|
||||
|
||||
public <T> void setnx(final String key, final Convert convert, final Type type, final T value);
|
||||
|
||||
public <T> T getSet(final String key, final Type type, final T value);
|
||||
|
||||
public <T> T getSet(final String key, final Convert convert, final Type type, final T value);
|
||||
@@ -166,6 +182,8 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public void setString(final String key, final String value);
|
||||
|
||||
public void setnxString(final String key, final String value);
|
||||
|
||||
public void setString(final int expireSeconds, final String key, final String value);
|
||||
|
||||
public Map<String, String> getStringMap(final String... keys);
|
||||
@@ -200,6 +218,8 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public void setLong(final String key, final long value);
|
||||
|
||||
public void setnxLong(final String key, final long value);
|
||||
|
||||
public void setLong(final int expireSeconds, final String key, final long value);
|
||||
|
||||
public Map<String, Long> getLongMap(final String... keys);
|
||||
@@ -241,6 +261,12 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public <T> CompletableFuture<Void> setAsync(final String key, final Convert convert, final Type type, final T value);
|
||||
|
||||
public <T> CompletableFuture<Void> setnxAsync(final String key, final Convert convert, final T value);
|
||||
|
||||
public <T> CompletableFuture<Void> setnxAsync(final String key, final Type type, final T value);
|
||||
|
||||
public <T> CompletableFuture<Void> setnxAsync(final String key, final Convert convert, final Type type, final T value);
|
||||
|
||||
public <T> CompletableFuture<T> getSetAsync(final String key, final Type type, final T value);
|
||||
|
||||
public <T> CompletableFuture<T> getSetAsync(final String key, final Convert convert, final Type type, final T value);
|
||||
@@ -290,6 +316,16 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public CompletableFuture<Void> hsetLongAsync(final String key, final String field, final long value);
|
||||
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Convert convert, final T value);
|
||||
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Type type, final T value);
|
||||
|
||||
public <T> CompletableFuture<Void> hsetnxAsync(final String key, final String field, final Convert convert, final Type type, final T value);
|
||||
|
||||
public CompletableFuture<Void> hsetnxStringAsync(final String key, final String field, final String value);
|
||||
|
||||
public CompletableFuture<Void> hsetnxLongAsync(final String key, final String field, final long value);
|
||||
|
||||
public CompletableFuture<Void> hmsetAsync(final String key, final Serializable... values);
|
||||
|
||||
public <T> CompletableFuture<List<T>> hmgetAsync(final String key, final Type type, final String... fields);
|
||||
@@ -359,6 +395,8 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public CompletableFuture<Void> setStringAsync(final String key, final String value);
|
||||
|
||||
public CompletableFuture<Void> setnxStringAsync(final String key, final String value);
|
||||
|
||||
public CompletableFuture<Void> setStringAsync(final int expireSeconds, final String key, final String value);
|
||||
|
||||
public CompletableFuture<Map<String, String>> getStringMapAsync(final String... keys);
|
||||
@@ -393,6 +431,8 @@ public interface CacheSource extends Resourcable {
|
||||
|
||||
public CompletableFuture<Void> setLongAsync(final String key, long value);
|
||||
|
||||
public CompletableFuture<Void> setnxLongAsync(final String key, long value);
|
||||
|
||||
public CompletableFuture<Void> setLongAsync(final int expireSeconds, final String key, final long value);
|
||||
|
||||
public CompletableFuture<Map<String, Long>> getLongMapAsync(final String... keys);
|
||||
|
||||
Reference in New Issue
Block a user