Spring Data Redis
对字符串的操作,封装在了ValueOperations
和BoundValueOperations
中,在集成好了SPD之后,在需要的地方引入:
// 注入模板操作实例
@Autowired
private RedisTemplate template;
// 从模板中取出对应的操作类实例
@Resource(name = "redisTemplate")
private ValueOperations valueOps;
由于存储在Redis
中的键和值通常是java.lang.String
,因此Redis
模块为RedisConnection
和RedisTemplate
提供了两个扩展,分别是StringRedisConnection
(及其DefaultStringRedisConnection
实现)和StringRedisTemplate
(相当于RedisTemplate<String, String>
)。
org.springframework.data.redis.core.StringRedisTemplate
源码如下:
public class StringRedisTemplate extends RedisTemplate<String, String> {
/**
* Constructs a new <code>StringRedisTemplate</code> instance. {@link #setConnectionFactory(RedisConnectionFactory)}
* and {@link #afterPropertiesSet()} still need to be called.
*/
public StringRedisTemplate() {
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
setKeySerializer(stringSerializer);
setValueSerializer(stringSerializer);
setHashKeySerializer(stringSerializer);
setHashValueSerializer(stringSerializer);
}
/**
* Constructs a new <code>StringRedisTemplate</code> instance ready to be used.
*
* @param connectionFactory connection factory for creating new connections
*/
public StringRedisTemplate(RedisConnectionFactory connectionFactory) {
this();
setConnectionFactory(connectionFactory);
afterPropertiesSet();
}
protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) {
return new DefaultStringRedisConnection(connection);
}
}
实际就是继承自RedisTemplate<String, String>并且对应的序列化器是StringRedisSerializer。
网友评论