Java 使用 RedisTemplate 存储和获取 HashMap<String, RooM> 类型数据
使用 RedisTemplate 将 HashMap<String, RooM> 类型数据存储到 Redis 中,需要遵循以下步骤:
- 创建 RedisTemplate 对象并设置 Redis 连接工厂和序列化方式:
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.afterPropertiesSet();
- 定义一个 HashMap<String, RooM> 类型的数据:
HashMap<String, RooM> hashMap = new HashMap<>();
hashMap.put('key1', room1);
hashMap.put('key2', room2);
// 添加更多的键值对...
- 使用 RedisTemplate 的 opsForHash() 方法操作 Redis 的 Hash 数据结构,将 HashMap 存入 Redis:
redisTemplate.opsForHash().putAll('hashKey', hashMap);
- 从 Redis 中取出 HashMap<String, RooM> 类型的数据,可以使用 opsForHash() 方法获取整个 HashMap,或者使用 opsForHash().get() 方法获取单个键值对:
HashMap<String, RooM> retrievedHashMap = (HashMap<String, RooM>) redisTemplate.opsForHash().entries('hashKey');
RooM room1 = (RooM) redisTemplate.opsForHash().get('hashKey', 'key1');
RooM room2 = (RooM) redisTemplate.opsForHash().get('hashKey', 'key2');
注意:在存入和取出 HashMap 时,需要确保 RooM 类已经实现了 Serializable 接口或者自定义了序列化方式。
原文地址: https://www.cveoy.top/t/topic/qvTr 著作权归作者所有。请勿转载和采集!