山东大学暑期项目实训——云主机服务比价与预测系统(九)
学习Spring Boot整合redis
1、Pom文件导入依赖
主要是Redis的依赖,还使用了hutool工具来转Json(可省略)
<dependencies>
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--hutool工具-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.7</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2、配置application.properties文件
添加ip,端口和使用的数据库号码
spring.redis.host=192.168.83.166
spring.redis.port=6379
spring.redis.database=6
3、新建一个User对象
public class User implements Serializable {
private Integer age;
private String name;
@Override
public String toString() {
return "User{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User() {
}
public User(Integer age, String name) {
this.age = age;
this.name = name;
}
}
4、测试
@SpringBootTest
class SpringbootRedisApplicationTests {
@Autowired
RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.opsForValue().set("mykey","lizongliang");
System.out.println(redisTemplate.hasKey("mykey"));
System.out.println(redisTemplate.opsForValue().get("mykey"));
redisTemplate.delete("mykey");
System.out.println(redisTemplate.hasKey("mykey"));
}
@Test
void ceshi2() throws JsonProcessingException {
//新建一个对象
User user = new User(18,"李宗亮");
//将对象转为Json
String userJson = JSONUtil.toJsonStr(user);
//day对象
System.out.println(userJson);
//将对象的Json存到redis
redisTemplate.opsForValue().set("user",userJson);
//查看Redis中是否成功存入数据
System.out.println(redisTemplate.hasKey("user"));
//从Redis中得到对象强制转为User对象
String userJson1 = (String) redisTemplate.opsForValue().get("user");
//打印对象
System.out.println(userJson1);
//Json转化为对象实例
User user1 = JSONUtil.toBean(userJson1, User.class);
//打印对象
System.out.println(user1);
}
@Test
void ceshi3() {
//新建一个对象
User user = new User(19,"李宗亮");
//将对象的Json存到redis
redisTemplate.opsForSet().add("user_set",user);
//查看Redis中是否成功存入数据
System.out.println(redisTemplate.hasKey("user_set"));
//从Redis中得到对象强制转为User对象
User userSet = (User) redisTemplate.opsForSet().pop("user_set");
//打印对象
System.out.println(userSet);
}
@Test
void ceshi4() {
//将对象的Json存到redis
redisTemplate.expire("user",10, TimeUnit.SECONDS);
//查看Redis中是否有数据
System.out.println(redisTemplate.hasKey("user"));
}
@Test
void ceshi5() {
redisTemplate.opsForValue().set("key","李宗亮");
System.out.println("存入的数据:"+redisTemplate.opsForValue().get("key"));
Object va = redisTemplate.opsForValue().getAndSet("key", "heshiyi");
System.out.println("修改后返回的数据:"+va);
System.out.println("修改后的数据:"+redisTemplate.opsForValue().get("key"));
}
@Test
void ceshi6() {
System.out.println(redisTemplate.opsForList().index("list_key", 1));
}
}