3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

spring-dataとjedisを使おうとしたらしゃれにならないぐらいはまった。

Posted at

spring-data-redis

jedisを単体で使っていたがspring-dataをmysqlで使っていたので組み合わせて使おうとしたが・・

環境

spring4+maven3
java8

maven設定

spring-data-redisを追加宣言。
ちなみにspring-data-redisを使う際にはjedisの定義は必須で単体定義では使用できません。

またjedisバージョン2.4以降ではcommons-pool2が必須です。
これを定義しないとNoClassDefFoundErrorとなるため注意。

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.6.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.4</version>
</dependency>

applicationContext.xml設定

下記はimport用のためredis.xmlで必要な宣言のみです。

redis.xml
<bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
	p:host-name="localhost"
	p:port="6379"
	p:password=""
	p:use-pool="true"
	p:pool-config-ref="jedisPoolConfig" />
        
<bean id="redisTemplate" 
	class="org.springframework.data.redis.core.RedisTemplate"
	p:connection-factory-ref="jedisConnFactory"/>

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"
	p:maxTotal="150"
	p:minIdle="5"
	p:maxIdle="15"/>

実行するが・・

nested exception is java.lang.ClassNotFoundException: redis.clients.jedis.JedisPoolConfig

解決方法

試行錯誤の上、依存関係の問題か全て最新バージョンにすると正常動作しないようなので、下記のようにバージョンダウンして対応。

  • spring-data-redis -> 1.4.0.RELEASE
  • jedis -> 2.6.0
  • common-pool2 -> 2.3

ちょっとすっきりしませんが、取り急ぎ動作確認は完了。
spring-data-redisはバージョンによって必要なライブラリやそのバージョンが異なるため注意が必要です。


jedis単体でも実用には問題無いですが、spring-dataと組み合わせることで
springが提供しているコネクションプールなどが使えるため非常に便利です。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?