Files
spring-boot-demo/redis/docs/output/06-jackson-serializers.txt

31 lines
1.2 KiB
Plaintext

# Jackson 3 serializers: JacksonJsonRedisSerializer and GenericJacksonJsonRedisSerializer
--- JacksonJsonRedisSerializer<User>: one type, plain JSON ---
value serializer: org.springframework.data.redis.serializer.JacksonJsonRedisSerializer
userTemplate.opsForValue().set("user:1", new User(1, "Ankur"))
$ redis-cli -p 6390 KEYS '*'
user:1
$ redis-cli -p 6390 GET user:1
{"id":1,"name":"Ankur"}
read back: User[id=1, name=Ankur] (User)
--- GenericJacksonJsonRedisSerializer with an allow-list: any type, plus @class ---
value serializer: org.springframework.data.redis.serializer.GenericJacksonJsonRedisSerializer
jsonTemplate.opsForValue().set("user:2", new User(2, "Ankur"))
$ redis-cli -p 6390 GET user:2
{"@class":"com.ankurm.redis.model.User","id":2,"name":"Ankur"}
read back: User[id=2, name=Ankur] (User)
--- GenericJacksonJsonRedisSerializer with no typing configured ---
plain.opsForValue().set("user:3", new User(3, "Ankur"))
$ redis-cli -p 6390 GET user:3
{"id":3,"name":"Ankur"}
read back: {id=3, name=Ankur} (LinkedHashMap)
--- Two different shapes of the same JSON ---
$ redis-cli -p 6390 GET user:1
{"id":1,"name":"Ankur"}
$ redis-cli -p 6390 GET user:2
{"@class":"com.ankurm.redis.model.User","id":2,"name":"Ankur"}