Então, eu tenho um tipo de valor:
class Session {
long createdAt;
List<String> postIds;
}
Usando o Jedis cliente ( 3.0.0-m1
é que assuntos), Atualmente, estou executando uma hset
para criar as entradas e hgetAll
para recuperar todos os valores-chave:
private redis.clients.jedis.Jedis jedis;
void createSession(String idAsKey, Map<String, String> hashFieldValues) {
jedis.hset(idAsKey, hashFieldValues);
}
Map<String, String> fetchSession(String idAsKey) {
return jedis.hgetAll(idAsKey);
}
O desafio que eu atualmente estou olhando é a facilidade de converter a Map<String, String>
para o Session
objeto. Existe uma maneira existente para fazer isso?
resposta do servidor para um comando equivalente
1) "createdAt" 2) "1556099708307" 3) "postIds" 4) "[a, b, c]"
PS : Começando a aprender Redis, esperando que este tipo de mapeamento já pode ter sido resolvido para. Sim, não procurando uma mudança cliente como uma resposta, pelo menos.
não Jedis não oferece uma forma de mapear objetos para estruturas de hash.
Se você estiver usando primavera, então você pode olhar para HashMappers . Um HashMapper converte um POJO para um hash e vice-versa. No seu caso, o HashMapper irá converter uma sessão para um hash, e vice-versa.