2014-06-16 18 views
5

ho provato seguendo questo tutorial: http://javakart.blogspot.in/2012/12/spring-data-redis-hello-world-example.htmlPrimavera Dati RedisTemplate: serializzazione del valore e HashValue

La mia domanda è legata a questo: Weird redis key with spring data Jedis

sono stato in grado di risolvere le chiavi e hashkeys utilizzando lo StringRedisSerializer.

<bean 
id="stringRedisSerializer" 
class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 

<bean 
id="redisTemplate" 
class="org.springframework.data.redis.core.RedisTemplate" 
p:connection-factory-ref="jedisConnectionFactory" 
p:keySerializer-ref="stringRedisSerializer" 
p:hashKeySerializer-ref="stringRedisSerializer" 
/> 

Tuttavia, ho trovato un problema utilizzando un serializzatore per il valore e hashvalue.

Ho provato ad aggiungere questo:

p:valueSerializer-ref="stringRedisSerializer" 
p:hashValueSerializer-ref="stringRedisSerializer" 

Ma un errore indotto: "L'utente non può essere lanciato a java.lang.String"

possono condividere qualcuno come usare un serializzatore per il valore/hashvalue?

+0

Sembra che si stia serializzando oggetto utente come oggetto stringa. invece è possibile contrassegnare l'oggetto utente come serializzabile scrivendo "class User implementa java.io.Serializable", quindi il serializzatore predefinito di java si occuperà automaticamente. Quindi meglio non configurare nulla relativo a "Serializer-ref =" nel tuo bean.xml –

+0

http://stackoverflow.com/questions/13215024/weird-redis-key-with-spring-data-jedis –

risposta

9

Redis memorizza chiavi e valori come stringa. Dipende dal tuo livello di persistenza per gestire l'analisi. Nell'esempio, l'utente è un POJO e non una stringa. Ti suggerisco di utilizzare JacksonJsonRedisSerializer invece di StringRedisSerializer. In questo modo stai conservando json come valore.

<bean id="userJsonRedisSerializer" 
    class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer"> 
    <constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/> 
</bean> 
Problemi correlati