简介:
Redis(Remote Dictionary Server ):远程字典服务, 是一个key-value数据库
安装:
https://github.com/tporadowski/redis/releases
打开直接下载zip压缩包解压即可
解压后:
打开命令框(终端)开始运行redis
redis-server.exe redis.windows.conf
导入依赖:
pom.xml:
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.1</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--MysqL-->
<dependency>
<groupId>MysqL</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置yml:
spring:
datasource:
driver-class-name: com.MysqL.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:MysqL://localhost:3306/test
redis:
host: 127.0.0.1
port: 6379
password:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
timeout: 30000
#打印数据库语句
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server:
port: 9999
添加工具类:
redis工具类:
/**
* @author Jkchen
* @description: redis工具类$
* @date 2021/10/20 16:04
*/
@Component
public class RedisUtil {
@Autowired
Redistemplate<Object,Object> redistemplate;
//存入数据到缓存
public void setValue(String key,Object value){
redistemplate.opsForValue().set(key,value);
}
//通过key 获得数据
public Object getValue(String key){
return redistemplate.opsForValue().get(key);
}
//存入数据到缓存并设置过期时间(单位为秒)
public void setValuesAndExpire(String key,Object value,long time){
redistemplate.opsForValue().set(key,value,time, TimeUnit.SECONDS);
}
//删除缓存
public void delete(String key){
redistemplate.delete(key);
}
}
redis配置类:
/**
* @author Jkchen
* @description: Redis配置
* @date 2021/10/21 15:56
*/
@Configuration
public class RedisConfig {
// 使用Jackson2JsonRedisSerialize替换默认JDK序列化
@Bean
public Redistemplate<Object,Object> redistemplate(RedisConnectionFactory redisConnectionFactory){
Redistemplate<Object,Object> redistemplate = new Redistemplate<>();
redistemplate.setConnectionFactory(redisConnectionFactory);
// key采用String的序列化方式
redistemplate.setKeySerializer(new StringRedisSerializer());
// hash的key也采用String的序列化方式
redistemplate.setHashKeySerializer(new StringRedisSerializer());
// value序列化方式采用jackson
redistemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
// hash的hash的value序列化方式采用jackson
redistemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
return redistemplate;
}
}
测试:
根据id查询信息
@Override
public Object findById(int id) {
//根据key查询缓存
User user = (User) redisUtil.getValue("userKey" + id);
//判断是否为空
if(user==null){
//缓存为空
user=userMapper.selectById(id);
System.out.println("缓存为空查询数据库");
//插入缓存并且设置过期时间(单位为秒)
redisUtil.setValuesAndExpire("userKey"+id,user,30);
System.out.println("插入缓存");
}else{
System.out.println("从redis里取出");
}
return user;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。