Как получить значение ключа в кластере redis с помощью клиента redisson
Я пытаюсь получить значение ключа в кластере Redis с помощью клиента Redisson.
Config config = new Config();
config.useClusterServers()
.addNodeAddress("redis://localhost:6380","redis://localhost:6379","redis://localhost:6381");
RedissonClient redisson = Redisson.create(config);
RMapCache<String, String> map = redisson.getMapCache("db0");
System.out.println("Key value is : "+map.get("key"));
Я получил db0 в качестве пространства клавиш из этого результата команды
ИНФО пространство клавиш
DB0: ключи =1, истекает =0,avg_ttl=0
но результат таков:
Значение ключа: ноль
2 ответа
В кластере Redis всегда есть одно пространство клавиш, и его нельзя переключить или получить доступ через db0
название. db0:keys=1
означает, что у вас уже есть один ключ с db0
в твоем случае.
Я предлагаю этот код для подключения к Redis (кластеру или простому серверу) и получения существующего ключа простого значения:
package org.example;
import org.redisson.Redisson;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.StringCodec;
import org.redisson.config.Config;
public class Main {
public static void main(String[] args) {
try {
Config config = new Config();
config.useSingleServer().setAddress("redis://localhost:6379");
config.setCodec(new StringCodec());
RedissonClient redisson = Redisson.create(config);
RBucket<String> bucket = redisson.getBucket("clientName");
String objValue = bucket.get();
System.out.println("The object value is: " + objValue);
redisson.shutdown();
} catch (Exception e) {
System.out.println("e = " + e);
e.printStackTrace();
}
}
}