jedis的用法
Redis介绍
Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI
C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--jedis依赖-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
配置
spring:
redis:
host: localhost #Redis服务器地址
port: 6379 #Redis端口号
timeout: 300 # 连接超时时间(毫秒)
database: 0 # Redis数据库索引(默认为0)
password: # Redis 服务器密码,默认为空。生产中,一定要设置 Redis 密码!
jedis:
pool:
max-active: 8 # 连接池最大连接数,默认为 8 。使用负数表示没有限制。
max-idle: 8 # 默认连接数最大空闲的连接数,默认为 8 。使用负数表示没有限制。
min-idle: 0 # 默认连接池最小空闲的连接数,默认为 0 。允许设置 0 和 正数。
max-wait: -1 # 连接池最大阻塞等待时间,单位:毫秒。默认为 -1 ,表示不限制。
配置
@Configuration
@Slf4j
public class JedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private Integer port;
@Value("${spring.redis.timeout}")
private Integer timeout;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.database}")
private Integer database;
@Value("${spring.redis.jedis.pool.max-idle}")
private Integer maxIdle;
@Value("${spring.redis.jedis.pool.max-wait}")
private Long maxWait;
@Value("${spring.redis.jedis.pool.max-active}")
private Integer maxActive;
@Value("${spring.redis.jedis.pool.max-active}")
private Integer minIdle;
@Bean
public JedisPool redisPoolFactory() throws Exception{
log.info("JedisPool注入成功!!");
log.info(maxActive.toString());
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxActive);
//最小空闲的连接数
jedisPoolConfig.setMaxIdle(maxIdle);
//连接池最大连接数
jedisPoolConfig.setMaxTotal(maxActive);
//连接池最大阻塞等待时间
jedisPoolConfig.setMaxWaitMillis(maxWait);
//连接池最小空闲的连接数
jedisPoolConfig.setMinIdle(minIdle);
if(StringUtils.isBlank(password)){
//判断密码是否为空 不判断会报错
//Could not get a resource from the pool
return new JedisPool(jedisPoolConfig, host, port, timeout, null,database);
}
return new JedisPool(jedisPoolConfig, host, port, timeout, password,database);
}
}
jedis使用
jedisPool连接池获取jedis
@Resource
private JedisPool jedisPool;
public void jedis(){
Jedis jedis = jedisPool.getResource();
}
jedis方法和命令差不多简单使用一下
Redis命令
Jedis jedis = jedisPool.getResource();
//存入数据
jedis.set("key","value");
//读取数据
String key =jedis.get("key");
//追加
jedis.append("key","123");
//查看长度
Long size = jedis.strlen("key");