zoukankan      html  css  js  c++  java
  • redis集群配置

    Spring配置文件中redis集群配置
    <!-- 连接池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大连接数 --> <property name="maxTotal" value="1000"/> <!-- 最大空闲连接数 --> <property name="maxIdle" value="50"/> <property name="minIdle" value="20"/> <!-- 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException --> <property name="maxWaitMillis" value="10000" /> <!-- 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 --> <property name="timeBetweenEvictionRunsMillis" value="1000"/> <!-- 逐出连接的最小空闲时间 默认1800000毫秒(30分钟) --> <property name="minEvictableIdleTimeMillis" value="1000"/> <!-- 在获取连接的时候检查有效性, 默认false --> <property name="testOnBorrow" value="true"/> <!-- 在空闲时检查有效性, 默认false --> <property name="testWhileIdle" value="true"/> </bean> <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster"> <constructor-arg name="nodes"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="${redis.host1}" /> <constructor-arg name="port" value="${redis.port1}" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="${redis.host2}" /> <constructor-arg name="port" value="${redis.port2}" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="${redis.host3}" /> <constructor-arg name="port" value="${redis.port3}" /> </bean> </set> </constructor-arg> <constructor-arg name="timeout" value="10000" type="int" /> <constructor-arg name="poolConfig" ref="jedisPoolConfig" /> </bean>

    创建一个redisservice

     1 public interface RedisClusterService {
     2 
     3     Long incr(String key);
     4 
     5     void addSet(String key,String ... values);
     6 
     7     Long getSetLength(String key);
     8 
     9     Long getLong(String key);
    10 
    11     boolean delString(String key);
    12 
    13     Long decr(String key);
    14 
    15     void expire(String key, int seconds);
    16 
    17     String flushAll();
    18 
    19     boolean setString(String key, String value);
    20 
    21     String getString(String key);
    22 
    23     void setex(String key, int seconds, String value);
    24 
    25     void set(String key, String value);
    26 
    27     String get(String key);
    28 
    29 }

    RedisServise实现类

      1 @Service("redisService")
      2 public class RedisClusterServiceImpl implements RedisClusterService {
      3     protected static Logger logger = Logger.getLogger(RedisClusterServiceImpl.class);
      4     private static final Long LONG_0=0L;
      5     @Autowired
      6     private JedisCluster jedisCluster;
      7     /** 
      8      *通过键获取值
      9      * @param key 
     10      * @param values 
     11      */  
     12     @Override
     13     public String get(String key) {  
     14          
     15         try{
     16            String string = jedisCluster.get(key);
     17            return string;
     18         }catch(Exception e){
     19             logger.error("redis add set error,key["+key+"]", e);
     20             return null;
     21         }
     22     }
     23     /** 
     24      * 向Redis中添加键值
     25      * @param key 
     26      * @param values 
     27      */  
     28     @Override
     29     public  void set(String key, String value) {  
     30         if(null == key || value == null) {  
     31             return;  
     32         }  
     33         try{
     34             jedisCluster.set(key, value);
     35         }catch(Exception e){
     36             logger.error("redis add set error,key["+key+"]", e);
     37         }
     38     }
     39     /** 
     40      * redis递增操作
     41      * @param key
     42      * @param value
     43      */  
     44     @Override
     45     public void setex(String key, int seconds, String value) {
     46         
     47         try{
     48              jedisCluster.setex(key,seconds,value);
     49         }catch(Exception e){
     50             logger.error("redis incr error and key = " + key, e);
     51         }
     52     }
     53     /** 
     54      * redis递增操作
     55      * @param key
     56      * @param value
     57      */  
     58     @Override
     59     public Long incr(String key) {
     60         
     61         try{
     62              return jedisCluster.incr(key);
     63         }catch(Exception e){
     64             logger.error("redis incr error and key = " + key, e);
     65             return LONG_0;
     66         }
     67     }
     68     /** 
     69      * 向Redis中添加set集合 
     70      * @param key 
     71      * @param values 
     72      */  
     73     @Override
     74     public  void addSet(String key, String ... values) {  
     75         if(null == key || values == null) {  
     76             return;  
     77         }  
     78          
     79         try{
     80             jedisCluster.sadd(key, values);
     81         }catch(Exception e){
     82             logger.error("redis add set error,key["+key+"]", e);
     83         }
     84     }
     85     /** 
     86      * 返回Set集合中的元素个数 
     87      * @param key 
     88      * @return 
     89      */  
     90     @Override
     91     public Long getSetLength(String key) {  
     92         if(null == key) {
     93             return LONG_0;
     94         }
     95         try{
     96             return jedisCluster.scard(key);
     97         }catch(Exception e){
     98             logger.error("redis get set size error,key["+key+"]", e);
     99             return LONG_0;
    100         }
    101     }  
    102     /** 
    103      * 获取String类型的值 
    104      * @param key 键的值 
    105      * @return 
    106      */ 
    107     @Override
    108     public  Long getLong(String key) {
    109         if(null == key) {
    110             return LONG_0;  
    111         }  
    112         
    113         String val = jedisCluster.get(key);
    114         if(val == null) {
    115             return LONG_0;  
    116         }  
    117         return Long.valueOf(val);
    118     } 
    119     /** 
    120      * 操作字符串类型(String),删除键 
    121      * @param key 
    122      * @return 
    123      */  
    124     @Override
    125     public boolean delString(String key) {  
    126          try{
    127              jedisCluster.del(key);
    128              return true;  
    129          }catch(Exception e){
    130              logger.error("redis del key error!key["+key+"]", e);
    131              return false;
    132          }  
    133     }
    134     /** 
    135      * redis递减操作
    136      * @param key
    137      * @param value
    138      */  
    139     @Override
    140     public Long decr(String key) {
    141        
    142         try{
    143              return jedisCluster.decr(key);
    144         }catch(Exception e){
    145             logger.error("redis incr error and key = " + key, e);
    146             return LONG_0;
    147         }
    148     }
    149 
    150     /**
    151      * 设置过期时间
    152      *
    153      * @param key
    154      * @param seconds
    155      */
    156     @Override
    157     public void expire(String key, int seconds) {
    158         if (seconds <= 0) {
    159             return;
    160         }
    161        
    162         try{
    163             jedisCluster.expire(key, seconds);
    164         }catch(Exception e){
    165             logger.error("redis expire error and key = " + key, e);
    166         }
    167     }
    168 
    169     /**
    170      * 清空所有key
    171      */
    172     @Override
    173     public String flushAll() {
    174        
    175         String stata=StringUtils.EMPTY;
    176         try{
    177             stata = ((BasicCommands) jedisCluster).flushAll();
    178             return stata;
    179         }catch(Exception e){
    180             logger.error("redis clear all key error", e);
    181             return stata;
    182         }
    183     }
    184 
    185     
    186     /** 
    187      * 向redis新增字符串键值对
    188      * @param key
    189      * @param value
    190      */  
    191     @Override
    192     public boolean setString(String key, String value) {  
    193          if(null == key || value == null ) {
    194              return false;  
    195          }
    196          try{
    197              jedisCluster.set(key, value);
    198              return true;  
    199          }catch(Exception e){
    200              logger.error("redis set key error,key["+key+"]", e);
    201              return false;
    202          }  
    203     }     
    204     /** 
    205      * 获取String类型的值 
    206      * @param key 键的值 
    207      * @return 
    208      */ 
    209     @Override
    210     public String getString(String key) {
    211         if(null == key) {
    212             return null;  
    213         }  
    214         try{
    215             return jedisCluster.get(key);
    216         }catch(Exception e){
    217             logger.error("redis getBytes error!", e);
    218             return null;
    219         }  
    220     }  
    221 }
  • 相关阅读:
    总结下目前维护团队中用到的一些技术和工具
    一次修改时间导致的ORACLE 实例崩溃
    ruby 用watir 登录 CU的代码
    最近好烦.真的好烦
    Lucene.Net学习
    项目上线了,心情好爽
    轻松掌握XMLHttpRequest对象[转]
    微软发布3款SQL Injection攻击检测工具
    Domino开发
    用在JavaScript的RequestHelper [转]
  • 原文地址:https://www.cnblogs.com/guanjunhui/p/10280862.html
Copyright © 2011-2022 走看看