spring cloud整合redis
阿新 • • 發佈:2019-01-09
spring cloud連線和操作redis
1.依賴的jar
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.application.yml配置
server: port: 7010 eureka: client: service-url: defaultZone: http://localhost:7001/eureka #defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ instance: instance-id: jih-redis prefer-ip-address: true server: enable-self-preservation: false spring: application: name: jih_redis redis: host: id password: redis密碼 port: 6379 database: 8 pool: max-active: 8 min-idle: 0 max-idle: 8 max-wait: -1 timeout: 0
3.操作redis的工具了(我是為了方便你可以只寫你用的)
package com.xiaolc.util; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; /** * @author lc * @Date: 2018/12/28 15:31 */ public class RedisClient { private JedisPool jedisPool; /** * 設定值 * * @param key * @param value */ public void set(String key, Object value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value.toString()); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } /** * 設定過期時間 * * @param key * @param value * @param exptime * @throws Exception */ public void setWithExpireTime(String key, String value, int exptime) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value, "NX", "EX", 300); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } //得到值 public String get(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.get(key); } catch (Exception e) { e.printStackTrace(); } finally { if (jedis != null) jedis.close(); } return null; } public JedisPool getJedisPool() { return jedisPool; } public void setJedisPool(JedisPool jedisPool) { this.jedisPool = jedisPool; } //刪除 public long del(String key) { Jedis jedis = jedisPool.getResource(); return jedis.del(key); } /** * 到時自動銷燬 * * @param key * @param seconds 秒 */ public Long expire(final String key, final int seconds) { Jedis jedis = jedisPool.getResource(); return jedis.expire(key, seconds); } /** * 判斷key是否存在 * * @param key * @return */ public Boolean exists(String key) { Jedis jedis = jedisPool.getResource(); return jedis.exists(key); } }
4.配置類
package com.xiaolc.config; import com.xiaolc.util.RedisClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * @author lc * @Date: 2018/12/28 15:29 */ @Configuration @ConditionalOnClass(RedisClient.class) public class JedisConfig { private Logger logger = LoggerFactory.getLogger(JedisConfig.class); @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.pool.max-idle}") private int maxIdle; @Value("${spring.redis.pool.max-wait}") private long maxWaitMillis; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.pool.max-active}") private int maxTotal; @Bean(name = "jedisPool") public JedisPool jedisPool() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(maxTotal); config.setMaxIdle(maxIdle); config.setMaxWaitMillis(maxWaitMillis); return new JedisPool(config, host, port, timeout, password); } @Bean @ConditionalOnMissingBean(RedisClient.class) public RedisClient redisClient(@Qualifier("jedisPool") JedisPool pool) { logger.info("初始化……Redis Client==Host={},Port={}", host, port); RedisClient redisClient = new RedisClient(); redisClient.setJedisPool(pool); return redisClient; } }
5.如果報錯連線不上
如果報錯了連線不上遠端的redis請檢查redis是否開啟遠端連線和埠
可參考遠端redis配置檔案設定