jedis是什么
Jedis是Redis官方推荐的Java连接开发工具
docker 部署 redis
1.拉取镜像
docker pull redis:latest
2.生成容器
docker run --name redis-znkj -p 6379:6379 -d redis:latest redis-server --appendonly yes --requirepass 'znkjadmin123456'
redis-znkj 是你容器名字
6379 是端口
znkjadmin123456 是你的密码
appendonly yes 开启redis 持久化
整合springboot
1.引入pom
<!-- redis pool jedis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.yml配置
spring:
redis:
host: localhost
port: 6379
password: znkjadmin123456
database: 0
timeout: 3000
jedis:
pool:
max-idle: 6 # 连接池中的最大空闲连接
max-active: 32 # 连接池最大连接数(使用负值表示没有限制)
max-wait: 10000 #连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 4 # 连接池中的最小空闲连接
3.config配置
@PropertySource("classpath:application.yml")
@Configuration
@EnableAutoConfiguration
public class RedisConfig {
@Bean
@SuppressWarnings("all")
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
StringRedisSerializer keySerializer = new StringRedisSerializer();
GenericFastJsonRedisSerializer valueSerializer = new GenericFastJsonRedisSerializer();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 序列化 key 和 value
redisTemplate.setKeySerializer(keySerializer);
redisTemplate.setValueSerializer(valueSerializer);
redisTemplate.setHashKeySerializer(keySerializer);
redisTemplate.setHashValueSerializer(valueSerializer);
return redisTemplate;
}
}
4.util创建
@Component
public class RedisUtil {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
//=============================common============================
/**
* 指定缓存失效时间
*
* @param key 键
* @param time 时间(秒)
* @return
*/
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据key 获取过期时间
*
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
*
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e)