由于存储在Redis中的键和值非常普遍java.lang.String,因此Redis模块提供了RedisConnection和的两个扩展RedisTemplate,分别是StringRedisConnection(及其DefaultStringRedisConnection实现),并且StringRedisTemplate是用于密集型String操作的便捷的一站式解决方案。除了绑定到String键之外,模板和连接还使用StringRedisSerializer下方,这意味着存储的键和值是人类可读的(假设Redis和您的代码使用相同的编码)。
StringRedisTemplate 继承了RedisTemplate类,只是所有的KV序列化都设置为 StringRedisSerializer.UTF_8。
public class StringRedisTemplate extends RedisTemplate<String, String> {
public StringRedisTemplate() {
this.setKeySerializer(RedisSerializer.string());
this.setValueSerializer(RedisSerializer.string());
this.setHashKeySerializer(RedisSerializer.string());
this.setHashValueSerializer(RedisSerializer.string());
}
public StringRedisTemplate(RedisConnectionFactory connectionFactory) {
this();
this.setConnectionFactory(connectionFactory);
this.afterPropertiesSet();
}
protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) {
return new DefaultStringRedisConnection(connection);
}
}
测试案例:
@Test
void stringRedisTemplateTest() {
stringRedisTemplate.boundValueOps("kkk").set("vvv");
String value = stringRedisTemplate.boundValueOps("kkk").get();
stringRedisTemplate.boundHashOps("hashkkk").putIfAbsent("kkk","vvv");
System.out.println(value);
}
1
查看redis中的数据,发现都为String,很方便阅读:
RedisTemplate
Operations
RedisTemplate对Redis的每种数据类型都提供了响应的Operation对象,对数据进行操作。
Bound开头需要绑定Key,其对应的操作API都是一样的