我有这个问题。如何使用RedisTemplate访问由spring redis会话存储的散列键?
有存储在Redis的一个春季会议,保存this way
HMSET spring:session:sessions:33fdd1b6-b496-4b33-9f7d-df96679d32fe creationTime 1404360000000 \
maxInactiveInterval 1800 \
lastAccessedTime 1404360000000 \
sessionAttr:attrName someAttrValue \
sessionAttr2:attrName someAttrValue2
据我理解是一个散列集。
我可以通过redis-cli与HMGET来访问它,据我所知是获取散列键的值。
工程很好。
现在在春天,我想通过Redis模板(org.springframework.data.redis.core)访问它。
所以,我这样做
@Autowired RedisOperationsSessionRepository redisOperationsSessionRepository;
@Autowired RedisTemplate redisTemplate;
,并试图...
stringRedisTemplate.opsForValue()得到(loggedSessionId)。
redisTemplate.opsForHash().get("mykey", WHAT GOES HERE?)
redisOperationsSessionRepository.sessionRedisOperations.opsForHash().get(mykey", OR HERE?)
到目前为止我无法访问它的信息,任何想法什么散列我必须定义?有没有信息如何春天得到它...
谢谢。
编辑:
我基本上想要做的就是
COPY这个
,并使用另一个模板保存在其他的Redis ...
你可以看到,它没有以正确的方式序列化的值,如果我使用opsForHash复制并“粘贴”对象,可能会出现问题或者我会保存损坏的数据?报价从现场的https://redis.io/topics/data-types
Redis的哈希是字符串字段和字符串值之间的映射......
所以
redisTemplate.opsForHash().get("mykey", "myKeyHash")
将返回值
有没有我创建我的redis模板时必须指定的转换器? – jpganz18
和...“sessionAttr:SPRING_SECURITY_CONTEXT”的值是什么类型的对象? – jpganz18
@ jpganz18请检查我的编辑上面。 – chimmi