- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有这个问题。
在redis中存储了一个spring session,saved this way
HMSET spring:session:sessions:33fdd1b6-b496-4b33-9f7d-df96679d32fe creationTime 1404360000000 \
maxInactiveInterval 1800 \
lastAccessedTime 1404360000000 \
sessionAttr:attrName someAttrValue \
sessionAttr2:attrName someAttrValue2
据我了解是散列集。
我可以使用 HMGET 通过 redis-cli 访问它据我所知,这是获取散列键的值。
效果很好。
现在 Spring ,我想通过 Redis 模板 (org.springframework.data.redis.core) 访问它。
所以,我这样做了
@自动连线RedisOperationsSessionRepository redisOperationsSessionRepository;
@自动连线RedisTemplate redisTemplate;
并尝试...
stringRedisTemplate.opsForValue().get(loggedSessionId);
redisTemplate.opsForHash().get("mykey", WHAT GOES HERE?)
redisOperationsSessionRepository.sessionRedisOperations.opsForHash().get(mykey", OR HERE?)
到目前为止我无法访问它的信息,知道我必须定义什么散列吗?没有信息 spring 是如何得到它的......
谢谢。
编辑:
我基本上想做的是
复制这个
并使用另一个模板将其保存在其他redis中...
如您所见,它没有以正确的方式序列化值,如果我只是使用 opsForHash 复制和“粘贴”对象,或者我是否会保存损坏的数据,这可能是个问题?
最佳答案
引自 https://redis.io/topics/data-types
Redis Hashes are maps between string fields and string values ...
所以
redisTemplate.opsForHash().get("mykey", "myKeyHash")
将返回存储在键 mykey 中的字段 myKeyHash 的值。
对于您的考试,您的文件将是 creationTime、maxInactiveInterval、lastAccessedTime 和属性。
顺便说一句,还有一个更方便的方法:
redisTemplate.opsForHash().entries("mykey")
返回该散列中包含的所有文件及其值的映射。
编辑
由于 Spring 使用 JdkSerializationRedisSerializer 用于值和 StringRedisSerializer 用于键/哈希键,您必须按如下方式配置 RedistTemplate 才能正确读取数据:
RedisTemplate<String, Object> template = new RedisTemplate<>();
RedisSerializer stringSerializer = new StringRedisSerializer();
template.setConnectionFactory(...);
template.setKeySerializer(stringSerializer);
template.setHashKeySerializer(stringSerializer);
关于java - 如何使用 RedisTemplate 访问由 spring redis session 存储的散列 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247377/
我是 Redis 的新手,想用我现有的 spring 应用程序来实现它。 我的问题是使用具有相同键的不同 redisTemplate 来存储不同类型的值。 例如 我在 spring 中定义了 redi
我正在使用 spring redistemplate @Autowired private RedisTemplate redisTemplate; RedisToken => token |
我对 Spring 和 Redis 都很陌生。我想知道有没有办法通过值获取KEY? My KEY is patterned like this: "{typeOfFile}:{id}:{filenam
我已经开始在 spring 应用程序中使用 RedisTemplate。 opsForHash() 有一个“put”方法,但它只需要三个参数。我想保存一些键值对。这在节点中非常简单,例如: redi
我正在尝试测试 RedisTemplate 中的过期方法。例如,我将 session 存储在 redis 中,然后尝试检索 session 并检查值是否相同。对于过期 session ,我使用 red
我必须根据需要为每个请求(写入/读取)创建 RedisTemplate。连接工厂是JedisConnectionFactory JedisConnectionFactory factory=new
我正在尝试使用 Redis 为我的实体存储一些缓存数据,例如,它内部有不同类型的字段, public class Job { private String id; private Da
我使用 spring 的 RedisTemplate。 我在 redis 中有一个哈希。 我想使用模板查询 redis,以获取其键在特定键集中的所有条目。 我注意到了方法: Map entries =
我正在使用 Spring RedisTemplate 来处理与 Redis 相关的操作。我能存储两种数据类型吗?例如,我想存储 Key、String 以及 Key、Integer。如何实现? 最佳答案
在我的SpringBoot项目中,当我使用如下注入(inject)RedisTemplate时,没问题。 @Repository public class CommonDBDaoImpl implem
首先项目A,也就是SpringBOOT项目中使用redisTemplate 来做REDIS的缓存时,你会发现存到REDIS里边的KEY和VALUE,redisTemplat使用jdkSerializ
我有一个 Spring boot 应用程序,它与两个不同的 Redis 集群(在 Amazon Elasticache 上)通信。我正在使用 spring-data-redis 1.6.4。这是我针对
在制作spring redis数据模板时,我使用: RedisTemplate template = new RedisTemplate<>(); 然后我还将反序列化器设置为自定义反序列化器,该反序列
我在 redis 中有不同的模型键。 我使用这些模板来存储值; public RedisTemplate model1RedisTemplate() { RedisTemplate r
尝试将 RedisTemplate bean 与 GenericJackson2JsonRedisSerializer 一起使用,但在调试时我注意到 Spring Session 使用了不同的 Red
我正在使用 Spring 的 RedisTemplate 与 Redis 交互。 目前,我存储在 Redis 中的数据使用 OpsForHash 操作,因为这最适合我存储的数据。 但现在我想添加不同结
有什么方法可以检查 RedisTemplate 中是否存在某个键?或者换句话说,RedisTemplate API 中是否有任何等效的 Redis exists 命令? 最佳答案 是的,你可以使用pu
当我调用get()方法时,发生异常 这是代码 @Service("RedisService") public class RedisServiceImpl implements RedisServic
我在我的 spring boot 应用程序 中使用 RedisTemplate 并且我能够使用 singleKey 进行读取。 String valueJson = (String) redisTem
我想为存储在 Redis 中的 key 设置一个 ttl,我是通过以下方式完成的: @Component public class RedisBetgeniusMarketService implem
我是一名优秀的程序员,十分优秀!