RedisTemplate是Spring框架提供的一个用于操作Redis的模板类,它提供了丰富的API,可以方便地进行Redis的操作。常用的操作方式包括:
连接Redis服务器
在使用Redis时,首先需要创建RedisTemplate对象,并设置连接工厂。连接工厂分为JedisConnectionFactory和LettuceConnectionFactory两种,本例中我们使用JedisConnectionFactory。
@Configuration
public class RedisConfig {
@Bean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
@Bean
public JedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName("127.0.0.1");
factory.setPort(6379);
return factory;
}
}
添加、获取数据
- 添加数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public void addData(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
- 获取数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public Object getData(String key) {
return redisTemplate.opsForValue().get(key);
}
删除数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public void deleteData(String key) {
redisTemplate.delete(key);
}
操作Hash
- 添加Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public void addHashData(String key, String hashKey, Object value) {
redisTemplate.opsForHash().put(key, hashKey, value);
}
- 获取Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public Object getHashData(String key, String hashKey) {
return redisTemplate.opsForHash().get(key, hashKey);
}
- 删除Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;
public void deleteHashData(String key, String hashKey) {
redisTemplate.opsForHash().delete(key, hashKey);
}
以上是RedisTemplate使用的常用操作,下面是两个示例:
示例一:添加、获取数据
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setData(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String getData(String key) {
return (String)redisTemplate.opsForValue().get(key);
}
}
// controller
@RestController
public class RedisController {
@Autowired
private RedisService redisService;
@GetMapping("/addData")
public String addData(String key, String value) {
redisService.setData(key, value);
return "success";
}
@GetMapping("/getData")
public String getData(String key) {
return redisService.getData(key);
}
}
示例二:操作Hash
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setHashData(String key, String hashKey, String value) {
redisTemplate.opsForHash().put(key, hashKey, value);
}
public String getHashData(String key, String hashKey) {
return (String)redisTemplate.opsForHash().get(key, hashKey);
}
}
// controller
@RestController
public class RedisController {
@Autowired
private RedisService redisService;
@GetMapping("/setHashData")
public String setHashData(String key, String hashKey, String value) {
redisService.setHashData(key, hashKey, value);
return "success";
}
@GetMapping("/getHashData")
public String getHashData(String key, String hashKey) {
return redisService.getHashData(key, hashKey);
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redis使用RedisTemplate模板类的常用操作方式 - Python技术站