1. 程式人生 > >JAVA常用工具類(一)--------------RedisConfig工具類

JAVA常用工具類(一)--------------RedisConfig工具類

Redis快取用的越來越多,那麼我們是如何使用的Redis?

一,redis的視覺化app

這個是目前比較流行的redis視覺化app。

這是執行狀態的redis,一共擁有16個數據庫,預設儲存在db0裡面。具體儲存的格式,我在 Redis實用教程-----------菜鳥快速入門裡面做過介紹,感興趣的可以看看。

二,工具類的實現

1,首先在工具類的包裡面建立自己工具類

2,涉及到的redis引數和導包,我們需要在application.properties進行配置

            <dependency>
				<groupId>redis.clients</groupId>
				<artifactId>jedis</artifactId>
				<version>2.9.0</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-redis</artifactId>
				<version>1.8.0.RELEASE</version>
			</dependency>
  @Value(value = "${redis.maxIdle}")
    private int redisMaxIdle;

    @Value(value = "${redis.maxTotal}")
    private int redisMaxTotal;

    @Value(value = "${redis.maxWaitMillis}")
    private int redisMaxWaitMillis;

    @Value(value = "${redis.ip}")
    private String redisIp;

    @Value(value = "${redis.master}")
    private String redisMaster;

    @Value(value = "${redis.timeOut}")
    private int redisTimeOut;

上面的這些引數,我已經做過修改,所以不是硬編碼,大家寫程式碼的時候也應該注意點,

3,注入bean的形式編寫程式碼(因為引數很多,只需要擷取自己需要的引數與就ok了)

JedisPoolConfig注入配置
 @Bean
    public JedisPoolConfig jedisPoolConfig() {
        JedisPoolConfig jedisPoolConfig = null;
        try {
            jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(redisMaxIdle);
            jedisPoolConfig.setMaxTotal(redisMaxTotal);
            jedisPoolConfig.setMaxWaitMillis(redisMaxWaitMillis);
            jedisPoolConfig.setTestOnBorrow(false);
        } catch (Exception e) {
            log.error("jedisPoolConfig有問題", e);
        }
        return jedisPoolConfig;
    }
RedisSentinelConfiguration配置
 @Bean
    public RedisSentinelConfiguration redisSentinelConfiguration() {
        Set<String> sentinelHostAndPorts = new HashSet<>();
        sentinelHostAndPorts.add(redisIp);
        return new RedisSentinelConfiguration(redisMaster, sentinelHostAndPorts);
    }
JedisConnectionFactory配置
 @Bean
    public JedisConnectionFactory jedisConnectionFactory(
            JedisPoolConfig jedisPoolConfig, RedisSentinelConfiguration redisSentinelConfiguration{
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisSentinelConfiguration, jedisPoolConfig);
        jedisConnectionFactory.setTimeout(redisTimeOut);
        jedisConnectionFactory.setDatabase(12);
        return jedisConnectionFactory;
    }
RedisTemplate配置
 @Bean
    public RedisTemplate<String, String> redisTemplate(JedisConnectionFactory jedisConnectionFactory) {
        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(jedisConnectionFactory);
        return redisTemplate;
    }

4使用的時候可以new,也可以注入

 @Autowired
    private RedisTemplate<String, String> redisTemplate;
 RedisTemplate<String,String> redisTemplate =new RedisTemplate<>();
 private RedisTemplate<String,String> redisTemplate;