当前位置:  开发笔记 > 后端 > 正文

Spring RedisTemplate:使用与多个RedisTemplate相同的键来存储不同的值

如何解决《SpringRedisTemplate:使用与多个RedisTemplate相同的键来存储不同的值》经验,为你挑选了0个好方法。

我是Redis的新手,想要用我现有的spring应用程序实现它.

我的问题是使用不同的redisTemplate和相同的键来存储不同类型的值.

例如

我在spring中定义了redisTemplate1和redisTemplate2 bean,就像.




在我的服务的java文件中,我使用这两个redis模板创建了两个不同的数据结构.

@Autowired
@Qualifier(value = "redisTemplate1")
private RedisTemplate       redisTemplate1;

@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模板?

如果是,我可以使用相同的密钥(每个模板唯一)来存储不同类型的数据并访问使用该模板和密钥存储的相同数据吗?

如果没有,执行相同操作的替代方法是什么?

提前致谢.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有