spring 整合redis

spring整合单机版redis

1 在applicationContext-service.xml配置文件中配置JedisPool

<!-- 配置redis客户端单机版 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
    <constructor-arg name="host" value="182.61.41.84"></constructor-arg>
    <constructor-arg name="port" value ="6379"></constructor-arg>
</bean>

2 使用
定义一个java接口和JedisClientSingle实现类,实现类中注入jedisPool
JedisClient.java

public interface JedisClient {
    
    String set(String key, String value);
    String get(String key);
    
    // hash操作
    Long hset(String key, String item, String value);
    String hget(String key, String item);
    Long hdel(String key, String item);
    
    // 自增
    Long incr(String key);
    Long decr(String key);
    
    // 时间
    Long expire(String key, int second);
    Long ttl(String key);
}

JedisClientSingle.java实现类


public class JedisClientSingle implements JedisClient {
    
    @Autowired
    public JedisPool jedisPool;

    @Override
    public String set(String key, String value) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.set(key, value);
        jedis.close();
        return result;
    }

    @Override
    public String get(String key) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.get(key);
        jedis.close();
        return result;
    }

    @Override
    public Long hset(String key, String item, String value) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.hset(key, item, value);
        jedis.close();
        return result;
    }

    @Override
    public String hget(String key, String item) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.hget(key, item);
        jedis.close();
        return result;
    }
    
    @Override
    public Long hdel(String key, String item) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.hdel(key, item);
        jedis.close();
        return result;
    }

    @Override
    public Long incr(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.incr(key);
        jedis.close();
        return result;
    }

    @Override
    public Long decr(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.decr(key);
        jedis.close();
        return result;
    }

    @Override
    public Long expire(String key, int second) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.expire(key, second);
        jedis.close();
        return result;
    }

    @Override
    public Long ttl(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.ttl(key);
        return result;
    }

}

3 在applicationContext-service.xml配置文件中,添加对 JedisClientSingle的扫描。

<!-- 配置redis客户端实现类(注意redis单机版本和集群版不要共存) -->
 <bean id ="jedisClientSingle" class="com.taotao.rest.component.impl.JedisClientSingle"></bean> 

spring中整合 redis集群

1 在applicationContext-service.xml配置文件中配置JedisCluster。

<bean id= "jedisCluster" class="redis.clients.jedis.JedisCluster">
    <constructor-arg>
        <set>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7001"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7001"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7002"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7003"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7004"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7005"/>
            </bean>
            <bean class="redis.clients.jedis.HostAndPort">
                <constructor-arg name="host" value="182.61.41.84"/>
                <constructor-arg name="port" value="7006"/>
            </bean>
        </set>
    </constructor-arg>
</bean>

2 实现JedisClientCluster,在该类中注入jedisCluster。

public class JedisClientCluster implements JedisClient {
    
    @Autowired
    public JedisCluster jedisCluster;

    @Override
    public String set(String key, String value) {
        return jedisCluster.set(key, value);
    }

    @Override
    public String get(String key) {
        return jedisCluster.get(key);
    }

    @Override
    public Long hset(String key, String item, String value) {
        return jedisCluster.hset(key, item, value);
    }

    @Override
    public String hget(String key, String item) {
        return jedisCluster.hget(key, item);
    }
    
    @Override
    public Long hdel(String key, String item) {
        return jedisCluster.hdel(key, item);
    }

    @Override
    public Long incr(String key) {
        return jedisCluster.incr(key);
    }

    @Override
    public Long decr(String key) {
        return jedisCluster.decr(key);
    }

    @Override
    public Long expire(String key, int second) {
        return jedisCluster.expire(key, second);
    }

    @Override
    public Long ttl(String key) {
        return jedisCluster.ttl(key);
    }

}

3 在applicationContext-service.xml配置文件中,添加对 JedisClientSingle的扫描。

<!-- 配置redis客户端实现类(注意redis单机版本和集群版不要共存) -->
<bean id="jedisClientCluster" class="com.taotao.rest.component.impl.JedisClientCluster" />

注意:采用这种方法配置时,redis单机版和集群版不能共存。一般测试环境使用单机版,生成环境使用集群版。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,970评论 6 342
  • 一.环境准备(windows下nginx+tomcat,linux同理) 1.nginx一台 2.tomcat 2...
    lmandy阅读 476评论 0 1
  • 生活中,总有这样一些人,似乎他们存在的意义就是凸显你的不合群。 当某一件事情触犯了你所坚守的原则底线或是道德认知时...
    尹惟楚阅读 50,848评论 268 2,023
  • 在这几天里,我爸妈突然让我学游泳,而且还列举出了好多个游泳的好处,而且以前我还有一点点的功底,所以我只能去学游泳...
    期待待续阅读 241评论 0 1