关于redis统一session的问题
2017-08-14 09:00
162 查看
今天闹了一个大笑话,做集群后面放了一个redis用来做session统一,以前安卓,ios放在本地的验证码不能用了,故准备放到redis里做统一管理。但是我将key设置为jsessionid与session里的jsessionid相同导致报错。很尴尬
下面上redis的代码,作为保存
下面是configutils用来读取配置文件
下面上redis的代码,作为保存
package com.rsxxjs.util.session; import com.rsxxjs.util.common.ConfigUtil; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * @Title RedisClient * @Description redis * @date 2017年8月9日 */ public class RedisClient { public static JedisPool jedisPool; // 池化管理jedis链接池 static { //读取相关的配置 int maxActive = 1000; int maxIdle = 20; int maxWait = 3000; String ip =ConfigUtil.getProperty("redis.ip"); int port = 6379; JedisPoolConfig config = new JedisPoolConfig(); //设置最大连接数 config.setMaxTotal(maxActive); //设置最大空闲数 config.setMaxIdle(maxIdle); //设置超时时间 config.setMaxWaitMillis(maxWait); //初始化连接池 jedisPool = new JedisPool(config, ip, port); } /** * 向缓存中设置字符串内容 * @param key key * @param value value * @return * @throws Exception */ public static boolean set(String key,String value) throws Exception{ Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; }finally{ if(jedis!=null){ jedis.close(); } } } /** * 删除缓存中得对象,根据key * @param key * @return */ public static boolean del(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.del(key); return true; } catch (Exception e) { e.printStackTrace(); return false; }finally{ if(jedis!=null){ jedis.close(); } } } /** * 根据key 获取内容 * @param key * @return */ public static Object get(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); Object value = jedis.get(key); return value; } catch (Exception e) { e.printStackTrace(); return false; }finally{ if(jedis!=null){ jedis.close(); } } } }
下面是configutils用来读取配置文件
package com.rsxxjs.util.common; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Properties; /** *@description 读取配置文件工具类 */ public class ConfigUtil { @SuppressWarnings("rawtypes") private static HashMap messages = new HashMap(); private static Properties props = new Properties(); /** * @param args */ static { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream is = null; is = classLoader.getResourceAsStream("properties/common-config.properties"); if (is != null) { try { props.load(is); } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } @SuppressWarnings("unchecked") public static String getProperty(String key) { String msg = (String)messages.get(key); if (msg == null) { String pros = props.getProperty(key); if( pros != null) { messages.put(key,pros); } msg = pros; } return msg; } }
相关文章推荐
- 关于yii 中用redis 存session 遇到的问题
- Nginx+IIS+Redis 处理Session共享问题 2
- 关于WebLogic的Session丢失的问题
- 关于出现No Hibernate Session bound to thread问题的记录
- 关于session 的过期跳转问题
- win7下关于session 0 存在的问题
- 关于asp.net Session丢失问题的总结
- 关于Session值丢失问题
- 关于asp.net Session丢失问题的总结
- nodejs关于session和cookie的问题
- 关于session配置的问题Warning: session_start() [function.session-start]
- 关于asp.net Session丢失问题的总结
- 集群环境下spring+session+redis,session共享问题
- 关于session过期后处理问题
- 关于asp.net Session丢失问题的总结
- 关于codeigniter即ci的session关闭浏览器不能自动失效的问题
- 关于shiro session失效报错问题
- 基于Spring session 和 redis 的session共享问题
- 关于session_start()这个问题
- 关于cas server无法通过session持久化方式实现集群的问题