我對redis來說比較新。 我正在設計一個rest API,以便在redis db中獲取整個數據集。從redis獲取redis中的全部數據
我用下面的代碼來獲取所有的按鍵
公共地圖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();
}
}
我能得到所有的鑰匙,但wasnt能夠檢索貨值均鍵。以下是方法 「Object value = redisService.getTemplate()。opsForValue()。get(」「);」
我想這是因爲一些鍵是不同的數據類型。
讓我知道是否必須修改/更改我的方法。