码迷,mamicode.com
首页 > 其他好文 > 详细

redis集群配置

时间:2019-01-17 10:51:14      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:connect   clu   字符串类   字符串键   pre   color   idle   param   最大连接数   

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 }

 

redis集群配置

标签:connect   clu   字符串类   字符串键   pre   color   idle   param   最大连接数   

原文地址:https://www.cnblogs.com/guanjunhui/p/10280862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!