主要是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>
添加ip,端口和使用的数据库号码就好
spring.redis.host=192.168.83.166
spring.redis.port=6379
spring.redis.database=6
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;
}
}
@SpringBootTest
class SpringbootRedisApplicationTests {
@Autowired
RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.opsForValue().set("mykey","heshiyi");
System.out.println(redisTemplate.hasKey("mykey"));
System.out.println(redisTemplate.opsForValue().get("mykey"));
redisTemplate.delete("mykey");
System.out.println(redisTemplate.hasKey("mykey"));
}
/**
* @auther: 何十一
* @date: 2020/2/1
* @Description:测试向Redis中存入对象和取出对象
*/
@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);
}
/**
* @auther: 何十一
* @date: 2020/2/1
* @Description:测试Set
*/
@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);
}
/**
* @auther: 何十一
* @date: 2020/2/1
* @Description:redis设置过期时间
*/
@Test
void ceshi4() {
//将对象的Json存到redis
redisTemplate.expire("user",10, TimeUnit.SECONDS);
//查看Redis中是否有数据
System.out.println(redisTemplate.hasKey("user"));
}
/**
* @auther: 何十一
* @date: 2020/2/1
* @Description:设置旧的键值对的值并返回对应的旧的value
*/
@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"));
}
/**
* @auther: 何十一
* @date: 2020/2/1
* @Description:Redis中List的使用
*/
@Test
void ceshi6() {
//redisTemplate.opsForList().leftPush("list_key","b");
//redisTemplate.opsForList().leftPush("list_key","c");
System.out.println(redisTemplate.opsForList().index("list_key", 1));
//System.out.println("rightPop数据:"+redisTemplate.opsForList().rightPop("aaa"));
}
}
整合过程其实就是使用SpringBoot给我们准备好的自动配置类,当我们导入spring-boot-starter-data-redis依赖{RedisOperations.class},并且配置{RedisProperties.class}后就可以使用RedisTemplate和StringRedisTemplate。
@Configuration(
proxyBeanMethods = false
)
@ConditionalOnClass({RedisOperations.class})
@EnableConfigurationProperties({RedisProperties.class})
@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})
public class RedisAutoConfiguration {
public RedisAutoConfiguration() {
}
@Bean
@ConditionalOnMissingBean(
name = {"redisTemplate"}
)
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
整合过程比较简单,希望对大家有帮助。
近期文章 |
---|
Docker安装Mysql以及Mysql的基本操作——入门必看 |
vue-cli十分钟学习入门笔记――开袋即食 |
如何判断2的n次方?用四种方式来扒一扒。 |
关于SpringAOP的三种实现方式你有了解过吗? |
八皇后问题详细另类图解-九张图带你了解什么是八皇后问题 |