Redis中文网:
Redis 教程_redis教程https://www.redis.net.cn/tutorial/3501.htmlRedis底层以二进制/字符串形式存储内容,所以,在实际开发中要进行RedisTemplate序列化,如果RedisTemplate不序列化的话,看见的是二进制内容(\xAD\xCD)如下图,序列化以后,则所见即所得(可以以对象、字符串等形式显示)。
序列化以前:
序列化以后:
1、RedisTemplate序列化
序列化:把java对象转换为二进制/字符串,然后存储到内存中;
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
//创建template连接
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
//设置连接工厂
redisTemplate. setConnectionFactory (redisConnectionFactory);
//设置序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
//key 和 hashKey采用 string 序列化
redisTemplate.setKeySerializer(RedisSerializer.string());
redisTemplate.setHashKeySerializer(RedisSerializer.string());
//value和 hashValue采用 JSON序列化
redisTemplate.setValueSerializer(jsonRedisSerializer);
redisTemplate.setHashValueSerializer(jsonRedisSerializer);
return redisTemplate;
}
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory(factory);
stringRedisTemplate.afterPropertiesSet();
return stringRedisTemplate;
}
2、String类型
@Resource
RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>();
//设置String类型key-value、有效时间
redisTemplate.opsForValue().set("String-key","String-value:123", Duration.ofMinutes(3));
//获取有效时间
redisTemplate.getExpire("String-key");
//删除
redisTemplate.delete("String-key");
3、List类型
//加入位置leftPush、reihtPush
redisTemplate.opsForList().leftPush("left-list","list1");
redisTemplate.opsForList().rightPush("right-list","list2");
//设置有效时间
redisTemplate.expire("list1",Duration.ofMinutes(3));
4、Hash类型
redisTemplate.opsForHash().put("hash","name","huqin");
redisTemplate.opsForHash().put("hash","age",23);
//设置过期时间
redisTemplate.expire("hash",Duration.ofMinutes(3));