- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我是 Redis 的新手,想用我现有的 spring 应用程序来实现它。
我的问题是使用具有相同键的不同 redisTemplate 来存储不同类型的值。
例如
我在 spring 中定义了 redisTemplate1 和 redisTemplate2 bean,比如。
<bean id="redisTemplate1" class ="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref ="connectionFactory" />
<bean id="redisTemplate2" class ="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref ="connectionFactory" />
在我的服务的 java 文件中,我使用这两个 redis 模板创建了两个不同的数据结构。
@Autowired
@Qualifier(value = "redisTemplate1")
private RedisTemplate<String, Student> redisTemplate1;
@Autowired
@Qualifier(value = "redisTemplate2")
private RedisTemplate<String, Address> redisTemplate2;
并且,使用以下模式来存储数据。
redisTemplate1.opsForHash().put("KEY1", student.getId(), student);
redisTemplate2.opsForHash().put("KEY1", address.getId(), address);
情况是,我的每个表都有以 1 开头的主键。所以 1 是否有 Student 和 Address 的主键。
我正在使用下面的行从数据存储中获取 Student。
(Student) redisTemplate1.opsForHash().get("KEY1", 1);
但是,不幸的是它产生了一个异常。
java.lang.ClassCastException: com.redis.model.Address cannot be cast to com.redis.model.Student
所以,我的问题是,
提前致谢。
最佳答案
实际上,Redis 是一个key/value
存储,如果您对同一个存储使用相同的key
,您只需用新值覆盖旧值。如果真正的 Redis 服务器是相同的,那么您拥有多少 RedisTemplate
(甚至 connectionFactory
)并不重要。
现在如何帮助您完成任务:
对于不同的域对象,你应该有不同的kyes
:例如学生
,地址
。由于您要使用自己的键存储域对象,因此 Map
value
看起来适合您。我的意思是在键 students
下应该存储 Student
的映射,对于 Address
也是如此。
实际上,无论您如何操作,但是您对两个域使用相同的 key
。因此,答案是:那是因为您使用的是来自两个 RedisTemplate
的相同 Redis。
关于 Spring RedisTemplate : use same key with multiple RedisTemplate to store different values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835023/
我是 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
我是一名优秀的程序员,十分优秀!