今日では、Springboot2統合Redisの時間で、従来の方法の問題点の番号から始まります。チェックはデフォルトのRedisクライアントとしてSpringboot2使用レタスを知っています。コンフィギュレーション・レタス・プールの設定ファイル、他の構成パラメータjedisので。Jedisクライアントは、手動ポンポンファイルに必要なjedisを自分の信頼を追加したいと思います。
Redisの: データベース:0 ホスト:192.168。1.210 ポート:6379 パスワード:パスワードの レタス: プール: 最大 -active:8 最大 -idle:8 分 -idle:0
もう一つの問題は、おそらく、エラーを報告します終了します
ClassNotFoundException:org.apache.commons.pool2.impl.GenericObjectPoolConfig
あなたは頼りにする必要が手動コモンズプールを追加します
<! - Redisのレタスプール需要这个依赖- > < 依存> < groupIdを> org.apache.commons </ groupIdを> < たartifactId >コモンズ-POOL2 </ たartifactId > < バージョン> 2.6.2 </ バージョン> </ 依存関係>
最後の質問は、次のコードを使用して、カスタムRedisTempelate時間であるSpringコンテナがRedisConnectionFactoryを見つけることができません文句を言うだろう
@Configuration @AutoConfigureAfter(RedisAutoConfiguration。クラス) パブリック クラスRedisConfig { @Bean 公共 RedisTemplate <オブジェクト、オブジェクト> redisTemplate(RedisConnectionFactory redisConnectionFactory){ RedisTemplate <オブジェクト、オブジェクト>テンプレート= 新しい RedisTemplate <> (); template.setConnectionFactory(redisConnectionFactory)。 Jackson2JsonRedisSerializer <オブジェクト> redisSerializer = 新しい Jackson2JsonRedisSerializer <>(オブジェクト。クラス); ObjectMapperマッパー = 新しいです ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL、JsonAutoDetect.Visibility.ANY)。 redisSerializer.setObjectMapper(マッパー) template.setValueSerializer(redisSerializer)。 template.setKeySerializer(新しいStringRedisSerializer()); template.afterPropertiesSet(); リターンテンプレート。 } }
デフォルトの設定Redisのクラスでも豆を使用していますので、しかし実際には、このBeanは、そこにあります。アッププロジェクトと実行がエラーで、RedisConnectionFactoryが必要です
最後に、とき自動注入は、この問題を解決するために、デフォルトRedisTemplateのプロパティを変更します。
@Component public class RedisCenter { private RedisTemplate<Object, Object> redisTemplate; public void expire(Object key, Object value, long time, TimeUnit unit) { redisTemplate.opsForValue().set(key, value, time, unit); } public Object get(Object key) { return redisTemplate.opsForValue().get(key); } @Autowired public void setRedisTemplate(RedisTemplate<Object, Object> redisTemplate) { Jackson2JsonRedisSerializer<Object> redisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); redisSerializer.setObjectMapper(mapper); redisTemplate.setValueSerializer(redisSerializer); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.afterPropertiesSet(); this.redisTemplate = redisTemplate; } }