欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot项目实践中使用java操作Redis之jedis

程序员文章站 2022-05-25 08:19:02
...

一、引入依赖

<!-- spring data redis 组件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
			<!--
                1.x 的版本默认采用的连接池技术是 Jedis,
                2.0 以上版本默认连接池是 Lettuce,
                如果采用 Jedis,需要排除 Lettuce 的依赖。
             -->
			<exclusions>
				<exclusion>
					<groupId>io.lettuce</groupId>
					<artifactId>lettuce-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- jedis 依赖 -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>

二、yaml文件配置

spring:
  redis:
    # Redis服务器地址
    host: 192.168.10.100
    # Redis服务器端口
    port: 6379
    # Redis服务器密码
    password: root
    # 选择哪个库,默认0库
    database: 0
    # 连接超时时间
    timeout: 10000ms
    jedis:
      pool:
        # 最大连接数,默认8
        max-active: 1024
        # 最大连接阻塞等待时间,单位毫秒,默认-1ms
        max-wait: 10000ms
        # 最大空闲连接,默认8
        max-idle: 200
        # 最小空闲连接,默认0
        min-idle: 5

三、创建自定义配置类

@Configuration
public class RedisConfig {
    
    @Value("${spring.redis.host}")
    private String host;
    
    @Value("${spring.redis.port}")
    private int port;
    
    @Value("${spring.redis.password}")
    private String password;
    
    @Value("${spring.redis.timeout}")
    private String timeout;
    
    @Value("${spring.redis.jedis.pool.max-active}")
    private int maxTotal;
    
    @Value("${spring.redis.jedis.pool.max-wait}")
    private String maxWaitMillis;
   
    @Value("${spring.redis.jedis.pool.max-idle}")
    private int maxIdle;
  
    @Value("${spring.redis.jedis.pool.min-idle}")
    private int minIdle;


    @Bean
    public JedisPool redisPoolFactory(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxWaitMillis(Long.parseLong(maxWaitMillis.substring(0,maxWaitMillis.length()-2)));
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
        
        return new JedisPool(
	        jedisPoolConfig, 
	        host, 
	        port, 
	        Integer.parseInt(timeout.substring(0,timeout.length() - 2)), 
	        password);
    }
}

四、使用

class Test{
	@Autowired
	JedisPool jedisPool;

	public void test(){
		 // 从连接池获取连接
	    Jedis jedis = jedisPool.getResource();
	
	    // 指定数据库 默认是0
	    jedis.select(2);
	
	    // 使用ping命令,测试连接是否成功
	    String result = jedis.ping();
	    System.out.println(result);// 返回PONG
	
	    // 添加一条数据
	    jedis.set("username", "lisi");
	
	    // 获取一条数据
	    String username = jedis.get("username");
	    System.out.println(username);
	
	    // 释放资源
	    if (jedis != null)
	        jedis.close();
		}
	}
相关标签: 项目实践