java存储redis数据类型以及客户端查看中文乱码的问题解决
其实不是乱码,RedisTemplate默认序列化方式用的是JdkSerializationRedisSerializer,将key序列化方式改成StringRedisSerializer,将value序列化方式改为Jackson2JsonRedisSerializer。将下面代码放到springboot的启动类下就可以了。
·
1、redis存储五大数据类型
String、hash、list、set、zset
//操作字符串
redisTemplate.opsForValue().set("key","value");
redisTemplate.opsForValue().get("key");
//操作hash
Map<String, String> maps = new HashMap();
maps.put("1","一");
maps.put("2","二");
maps.put("3","三");
maps.put("4","四");
redisTemplate.opsForHash().putAll("day", maps);
Map<String, String> maps = redisTemplate.opsForHash().entries("day");
//操作list
String[] strs = new String[]{"1","2","3"};
template.opsForList().leftPushAll("list",strs);
redisTemplate.opsForList().leftPush("list","4");;
template.opsForList().rightPush("list","5");
//操作set
String[] strs= new String[]{"1","2"};
redisTemplate.opsForSet().set("key",strs);
//移除集合中一个或多个成员
template.opsForSet().remove("key",strs)
//操作有序set
//新增一个有序集合,存在的话为false,不存在的话为true
template.opsForZSet().add("1","1",1.0)
redis设置过期时间
redisTemplate.opsForValue().set("key","value", 60 * 10, TimeUnit.SECONDS);
redisTemplate.opsForValue().set("key","value", 60 * 10, TimeUnit.SECONDS);
java存储redis,客户端查看乱码的问题解决。
其实不是乱码,RedisTemplate默认序列化方式用的是JdkSerializationRedisSerializer,将key序列化方式改成StringRedisSerializer,将value序列化方式改为Jackson2JsonRedisSerializer
将下面代码放到springboot的启动类下就可以了
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
jackson2JsonRedisSerializer.setObjectMapper(new ObjectMapper());
RedisSerializer stringSerializer = new StringRedisSerializer();
template.setKeySerializer(stringSerializer);
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashKeySerializer(stringSerializer);
template.setHashValueSerializer(jackson2JsonRedisSerializer);
return template;
更多推荐
已为社区贡献5条内容
所有评论(0)