Я относительно новичок в redis. Я разрабатываю API для отдыха, чтобы получить весь набор данных в redis db.Получение всех данных в redis от redisTemplate
Я использовал ниже код, чтобы получить все ключи
общественности Карта getAllRedisData() {
Map<Object, Object> map = new HashMap<>();
Set<byte[]> keys = redisService.getTemplate().getConnectionFactory().getConnection().keys("*".getBytes());
Iterator<byte[]> it = keys.iterator();
while(it.hasNext()){
byte[] data = (byte[])it.next();
// String key = new String(data,0,data.length);
Object key = null;
try {
key = getObjectFromByteArray(data);
System.out.println(key);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return map;
}
private Object getObjectFromByteArray(byte[] bytes) throws IOException, ClassNotFoundException
{
try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInput in = new ObjectInputStream(bis)) {
return in.readObject();
}
}
Я был в состоянии получить все ключи, но не был в состоянии получить значение для всех ключи. Ниже приведен подход «Значение объекта = redisService.getTemplate(). OpsForValue(). Get (" ");
Я думаю, это потому, что некоторые ключи имеют разные типы данных.
Дайте мне знать, если мне нужно изменить/изменить свой подход.