您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页spring使用redis集群配置

spring使用redis集群配置

来源:叨叨游戏网
spring使⽤redis集群配置

上⾯两篇介绍了redis集群的配置合⼀些基本的概念,所以接下来当然是要在项⽬中使⽤咯,redis的java⽀持已经做的⾮常好了,所以我们来试着使⽤这些api来进⾏redis的操作,⾸先我们需要操作redis的架包:

redis.clients jedis 2.7.3

我们需要做的仅仅是在spring配置⽂件中注⼊这些基本类,然后⾃⼰实现dao,下⾯是配置⽂件:

      

127.0.0.1:26379

上⾯配置好了以后,我们就相当于将redis集群给映射过来了,下来我们只需要做⼀些操作,涉及到数据的CRUD.

package com.yonyou.hotusm.module.nosql.redis;

import redis.clients.jedis.ShardedJedis;//这个接⼝是操作sharedJedis

public interface RedisDataSource {

public abstract ShardedJedis getRedisClient();

public void returnResource(ShardedJedis shardedJedis);

public void returnResource(ShardedJedis shardedJedis,boolean broken);}

实现:

package com.yonyou.hotusm.module.nosql.redis;import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;

import redis.clients.jedis.ShardedJedis;

import redis.clients.jedis.ShardedJedisPool;

@Repository(\"redisDataSource\")

public class RedisDataSourceImpl implements RedisDataSource {

private static final Logger log = LoggerFactory.getLogger(RedisDataSourceImpl.class); @Autowired

private ShardedJedisPool shardedJedisPool;

public ShardedJedis getRedisClient() { try {

ShardedJedis shardJedis = shardedJedisPool.getResource(); return shardJedis; } catch (Exception e) {

log.error(\"getRedisClent error\", e); }

return null; }

public void returnResource(ShardedJedis shardedJedis) { shardedJedisPool.close();

//shardedJedisPool.returnResource(shardedJedis); }

public void returnResource(ShardedJedis shardedJedis, boolean broken) { if (broken) {

shardedJedisPool.close();

//shardedJedisPool.returnBrokenResource(shardedJedis); } else {

shardedJedisPool.close();

//shardedJedisPool.returnResource(shardedJedis); } }}

下⾯就是操作jedis的具体类了:

@Repository(\"jedisTemplate\")public class JedisTemplate {

private static final Logger log = LoggerFactory.getLogger(JedisTemplate.class); @Autowired

private RedisDataSource redisDataSource;

public void disconnect() {

ShardedJedis shardedJedis = redisDataSource.getRedisClient(); shardedJedis.disconnect(); }

/**

* 设置单个值 *

* @param key * @param value * @return */

public String set(String key, String value) { String result = null;

ShardedJedis shardedJedis = redisDataSource.getRedisClient(); if (shardedJedis == null) { return result; }

boolean broken = false; try {

result = shardedJedis.set(key, value); } catch (Exception e) { e.printStackTrace();

log.error(e.getMessage(), e); broken = true; } finally {

redisDataSource.returnResource(shardedJedis, broken); }

return result; }

/**

* 获取单个值 *

* @param key * @return

*/

public String get(String key) { String result = null;

ShardedJedis shardedJedis = redisDataSource.getRedisClient(); if (shardedJedis == null) { return result; }

boolean broken = false; try {

result = shardedJedis.get(key);

} catch (Exception e) {

log.error(e.getMessage(), e); broken = true; } finally {

redisDataSource.returnResource(shardedJedis, broken); }

return result; }

真正的还有很多操作,list,set,哈希什么的,我就不把代码贴出来了,看看api就知道了

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务