diff --git a/src/main/java/org/redkale/source/CacheMemorySource.java b/src/main/java/org/redkale/source/CacheMemorySource.java index bb415c7bd..acaa5e0b4 100644 --- a/src/main/java/org/redkale/source/CacheMemorySource.java +++ b/src/main/java/org/redkale/source/CacheMemorySource.java @@ -25,7 +25,7 @@ import org.redkale.service.Local; import org.redkale.util.*; /** - * CacheSource的默认实现--内存缓存 + * CacheSource的默认实现--内存缓存, 此实现只可用于调试,不可用于生产环境 * 注意: url 需要指定为 memory:cachesource * *
@@ -1052,11 +1052,72 @@ public final class CacheMemorySource extends AbstractCacheSource {
entry.expireSeconds = expireSeconds;
}
+ @Override
+ public boolean persist(final String key) {
+ if (key == null) {
+ return false;
+ }
+ CacheEntry entry = container.get(key);
+ if (entry == null) {
+ return false;
+ }
+ entry.expireSeconds = 0;
+ return true;
+ }
+
+ @Override
+ public boolean rename(String oldKey, String newKey) {
+ if (oldKey == null || newKey == null) {
+ return false;
+ }
+ CacheEntry entry = container.get(oldKey);
+ if (entry == null) {
+ return false;
+ }
+ entry.key = newKey;
+ container.put(newKey, entry);
+ container.remove(oldKey);
+ return true;
+ }
+
+ @Override
+ public boolean renamenx(String oldKey, String newKey) {
+ if (oldKey == null || newKey == null) {
+ return false;
+ }
+ if (container.containsKey(newKey)) {
+ return false;
+ }
+ CacheEntry entry = container.get(oldKey);
+ if (entry == null) {
+ return false;
+ }
+ entry.key = newKey;
+ container.put(newKey, entry);
+ container.remove(oldKey);
+ return true;
+ }
+
@Override
public CompletableFuture