- 首先,需要配置Redis的连接信息并加载RedisTemplate实例。
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName("localhost");
config.setPort(6379);
return new JedisConnectionFactory(config);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
- 使用String类型的示例:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void addString(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String getString(String key) {
return (String) redisTemplate.opsForValue().get(key);
}
- 使用Hash类型的示例:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void addHash(String key, String hashKey, Object value) {
redisTemplate.opsForHash().put(key, hashKey, value);
}
public Object getHash(String key, String hashKey) {
return redisTemplate.opsForHash().get(key, hashKey);
}
- 使用List类型的示例:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void addList(String key, Object value) {
redisTemplate.opsForList().rightPush(key, value);
}
public Object getList(String key) {
return redisTemplate.opsForList().range(key, 0, -1);
}
- 使用Set类型的示例:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void addSet(String key, Object value) {
redisTemplate.opsForSet().add(key, value);
}
public Object getSet(String key) {
return redisTemplate.opsForSet().members(key);
}
- 使用ZSet类型的示例:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void addZSet(String key, Object value, double score) {
redisTemplate.opsForZSet().add(key, value, score);
}
public Object getZSet(String key) {
return redisTemplate.opsForZSet().rangeWithScores(key, 0, -1);
}