1.添加依赖
需要添加依赖项:
<!-- Spring Boot Data Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2. 配置RedisTemplate
需要配置RedisTemplate对象,通过此对象的API来访问Redis!
在项目的根包下创建config.RedisConfiguration配置类,在此类中通过@Bean方法来配置RedisTemplate:
![](https://img-blog.csdnimg.cn/img_convert/96340f4a5197e7d9b42a1873fcdf1487.png)
代码:
public class RedisConfiguration {
@Bean
public RedisTemplate<String, Serializable> redisTemplate(
RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Serializable> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(RedisSerializer.string()); //字符串序列化器
redisTemplate.setValueSerializer(RedisSerializer.json()); //值序列化器
redisTemplate.setConnectionFactory(redisConnectionFactory); //连接工厂
return redisTemplate;
}
}
测试学习RedisTemplate的常用操作:
![](https://img-blog.csdnimg.cn/img_convert/6ebf3af33ddc156d9235ed1d6a3ba426.png)
// 当需要对普通值(对应Redis中的string)进行操作时
// 需要先调用opsForValue()方法,得到ValueOperations
// 然后,调用ValueOperations对象的方法操作数据
@Test
void valueSet() {
String key = "username1";
Serializable value = "xiaoming";
ValueOperations<String, Serializable> ops = redisTemplate.opsForValue();
ops.set(key, value);
}
//相对应的ops的Get方法
@Test
void valueGet() {
String key = "username1";
ValueOperations<String, Serializable> ops = redisTemplate.opsForValue();
Serializable value = ops.get(key);
log.debug("根据Key【{}】查询数据,结果:{}", key, value);}
同上还可以放入对象
@Test
void valueSetObject() {
String key = "brand1";
Brand brand = new Brand();
brand.setName("大米");
brand.setPinyin("dami");
ValueOperations<String, Serializable> ops = redisTemplate.opsForValue();
ops.set(key, brand);
}
@Test
void valueGetObject() {
String key = "brand1";
ValueOperations<String, Serializable> ops = redisTemplate.opsForValue();
Serializable value = ops.get(key);
log.debug("根据Key【{}】查询数据,结果:{}", key, value);
}
可视化Redis下载
![](https://img-blog.csdnimg.cn/img_convert/13128c83650767ec45fe22b46e674d74.png)
![](https://img-blog.csdnimg.cn/img_convert/e6892e8859f69873e511c1c412691a16.png)
//根据模式查找Key
// 注意:在项目正式上线的版本中,禁止调用keys()方法以查找Key!!!也禁止在Redis客户端中使用keys命令!!!
@Test
void keys() {
String pattern = "*"; // keys *
Set<String> keys = redisTemplate.keys(pattern);
log.debug("根据模式【{}】查找Key,结果数量:{}", pattern, keys.size());
for (String key : keys) {
log.debug("Key = {}", key);
}
}
//删除操作
@Test
void delete() {
String key = "username1";
Boolean result = redisTemplate.delete(key);
log.debug("根据Key【{}】执行删除,结果:{}", key, result);
}
@Test
void deleteX() {
Set<String> keys = new HashSet<>();
keys.add("username1");
keys.add("username2");
keys.add("username3");
keys.add("username4");
keys.add("username5");
Long count = redisTemplate.delete(keys);
log.debug("根据Key【{}】执行删除,结果:{}", keys, count);
}