Skip to content

Latest commit

 

History

History
95 lines (82 loc) · 3.53 KB

JavaRedis.md

File metadata and controls

95 lines (82 loc) · 3.53 KB
title date tags categories
JavaRedis.md
2018-11-21 02:56:52 -0800

目录 start

  1. Java使用redis
    1. Jedis
      1. jedis遇到的异常
    2. Redisson
    3. Lettuce
    4. vertx-redis-client

目录 end|2019-04-19 13:04| Kuangcp | yi-yun


Java使用redis

Official List

Jedis

Github: Jedis 简单直接

  • maven依赖(Spring 4.1.7):
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>1.6.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
        <type>jar</type>
    <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.3.2</version>
    </dependency>

Spring配置文件

    <!--
        加载redis配置文件 
        如果已经加载了一个文件,那么第一个就要写这个配置项,
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        第二个要加 后面的配置 
        不然就只会加载前面那个文件
    -->
    <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    <!-- redis连接池的配置 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxActive" value="${redis.pool.maxActive}"/>
        <property name="maxIdle" value="${redis.pool.maxIdle}"/>
        <property name="minIdle" value="${redis.pool.minIdle}"/>
        <property name="maxWait" value="${redis.pool.maxWait}"/>
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
        <property name="testOnReturn" value="${redis.pool.testOnReturn}"/>
    </bean>
    <!-- redis的连接池pool,不是必选项:timeout/password  -->
    <bean id = "jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg index="0" ref="jedisPoolConfig"/>
        <constructor-arg index="1" value="${redis.host}"/>
        <constructor-arg index="2" value="${redis.port}" type="int"/>
        <constructor-arg index="3" value="${redis.timeout}" type="int"/>
        <constructor-arg index="4" value="${redis.password}"/>
    </bean>
  • java实际测试类JedisUtilsTest.java

  • jedis 使用后要disconnect释放连接,最新版本close就不用了,使用连接池就不用

  • jedis 的事务 使用exec释放事务

jedis遇到的异常

  • Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter
  • 版本对不上,要Spring和Spring-data-redis 和 redis和commons-lang3对应
  • 目前是4.1.7 + 1.6.0 + 2.9.0 + 3.3.2 编译通过了

Redisson

Github: Redisson


Lettuce

Official | Github:

和 Spring Netty 结合紧密, 适合 Spring 系, 没有Jedis简洁

vertx-redis-client

Github: vertx-redis-client