我是Redis的新手,想要用我现有的spring应用程序实现它.
我的问题是使用不同的redisTemplate和相同的键来存储不同类型的值.
例如
我在spring中定义了redisTemplate1和redisTemplate2 bean,就像.
在我的服务的java文件中,我使用这两个redis模板创建了两个不同的数据结构.
@Autowired @Qualifier(value = "redisTemplate1") private RedisTemplateredisTemplate1; @Autowired @Qualifier(value = "redisTemplate2") private RedisTemplate redisTemplate2;
并且,使用以下模式来存储数据.
redisTemplate1.opsForHash().put("KEY1", student.getId(), student); redisTemplate2.opsForHash().put("KEY1", address.getId(), address);
情况是,我有每个表以1开头的主键.所以1是学生和地址的主键.
我正在使用下面的行让学生从数据存储中回来.
(Student) redisTemplate1.opsForHash().get("KEY1", 1);
但是,不幸的是它产生了一个例外.
java.lang.ClassCastException: com.redis.model.Address cannot be cast to com.redis.model.Student
所以,我的问题是,
是否可以使用多个redis模板?
如果是,我可以使用相同的密钥(每个模板唯一)来存储不同类型的数据并访问使用该模板和密钥存储的相同数据吗?
如果没有,执行相同操作的替代方法是什么?
提前致谢.