<!-- redis begin -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency> <dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<!-- rabbitmq end -->

spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"> <!-- 注入redis依赖服务器信息 -->
<context:property-placeholder location="classpath:jedis.properties,classpath:system-db.properties,classpath:dev.properties" /> <!-- spring 自动扫描组件 -->
<context:component-scan base-package="com.xk.ses" />
<bean class="com.xk.lang.redis.RedisOperate">
<constructor-arg ref="shardedJedisPoolService"></constructor-arg>
</bean> <import resource="spring-mvc.xml" />
<import resource="spring-aop.xml" />
<import resource="spring-mybatis.xml" />
<import resource="spring-context-redis.xml" />
<import resource="email.xml"/>
</beans>
spring-context-redis.xml
<?xml version="1.0" encoding= "UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" />
<!-- <property name="maxActive" value="${redis.maxActive}" /> <property
name="maxWait" value="${redis.maxWait}" /> -->
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
<property name="testOnReturn" value="${redis.testOnReturn}" />
</bean> <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="poolConfig"></constructor-arg>
<constructor-arg index="1">
<list>
<bean class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="${redis.host}"></constructor-arg>
<property name="password" value="${redis.pass}"></property>
<!-- <constructor-arg index="1" value="${redis.port}" type="int"></constructor-arg> -->
</bean> <!-- 多台服务器时使用 <bean class="redis.clients.jedis.JedisShardInfo"> <constructor-arg
index="0" value="${redis.host}"></constructor-arg> <constructor-arg index="1"
value="${redis.port}" type="int"></constructor-arg> </bean> -->
</list>
</constructor-arg>
</bean> <bean id="shardedJedisPoolService" class="com.xk.lang.redis.ShardedJedisPoolServiceImpl">
<property name="shardedJedisPool" ref="shardedJedisPool"></property>
</bean> </beans>

读取的配置文件

#redis server
redis.host=http://192.168.2.88:6379/1
redis.port=6379
redis.pass=qqq111
redis.timeout=3000 redis.maxIdle=300
redis.maxActive=600
redis.maxWait=1000
redis.testOnBorrow=true
redis.testOnReturn=true

java类

package com.xk.lang.redis;

public final class RedisKeyConstant {

    public static final String LOGIN_USER_PERFIX = "XKY_";

    public static final String PROVINCE_KEY = "province";  //城市

    public static final String AMS_WHETHER_KEY = "ams_whether";// 学校类型

    public static final String NATION_KEY = "nation";// 国家/地区

    public static final String NATIONALITY_KEY = "nationality";// 民族

    public static final String UMS_SCHOOLTYPE_KEY = "ums_schoolType";// 学校类型

    public static final String UMS_RUNSCHOOLTYPE_KEY = "ums_runSchoolType";// 办学类型

    public static final String UMS_USERTYPE_KEY = "ums_userType";// 用户类型

    public static final String UMS_ROLETYPE_KEY = "ums_roleType";// 角色类型

    public static final String UMS_ORGTYPE_KEY = "ums_orgType";// 组织类型

    public static final String UMS_GROUPTYPE_KEY = "ums_groupType";// 用户组类型

    public static final String OAS_INFOMESSAGE_KEY = "oas_infoMessage";// 信息类型

    public static final String OAS_SCHEDULEMESSAGE_KEY = "oas_scheduleMessage";// 日程类型

    public static final String OAS_LEAVEMESSAGE_KEY = "oas_leaveMessage";// 请假类型

    public static final String SMS_STATE_KEY = "sms_state";// 状态

    public static final String SMS_VOUCHERTYPE_KEY = "sms_voucherType";// 学生档案管理-基础信息,证件类型

    public static final String SMS_SEX_KEY = "sms_sex";// 性别

    public static final String SMS_NATIVEPLACE_KEY = "sms_nativePlace";// 籍贯

    public static final String SMS_CHINESEOUTSIDE_KEY = "sms_chineseOutside";// 港澳台侨外

    public static final String SMS_POLITICSSTATUS_KEY = "sms_politicsStatus";// 政治面貌

    public static final String SMS_HEALTHSTATUS_KEY = "sms_healthStatus";// 健康状况

    public static final String SMS_CATEGORY_KEY = "sms_category";// 户口性质

    public static final String SMS_BLOOD_KEY = "sms_blood";// 血型

    public static final String SMS_RELIGION_KEY = "sms_religion";// 宗教信仰

    public static final String SMS_STUDENTTYPE_KEY = "sms_studentType";// 学生类别

    public static final String SMS_WAYSOFENROLL_KEY = "sms_waysOfEnroll";// 入学方式

    public static final String SMS_STUDENTSOURCE_KEY = "sms_studentSource";// 学生来源

    public static final String SMS_READMODE_KEY = "sms_readMode";// 就读方式

    public static final String SMS_DISABLEDTYPE_KEY = "sms_disabledType";// 残疾人类型

    public static final String SMS_CHILDSCHOOLTYPE_KEY = "sms_childSchoolType";// 上下学方式

    // public static final String SMS_VOUCHERTYPE_KEY =
// "sms_voucherType";//学生档案管理-家庭成员,证件类型 public static final String SMS_BUSINESSTYPE_KEY = "sms_businessType";// 从业状况 public static final String SMS_EDUCATION_KEY = "sms_education";// 学历 public static final String SMS_FAMILYTYPE_KEY = "sms_familyType";// 家庭类别 public static final String SMS_DIFFICULTYREASON_KEY = "sms_difficultyReason";// 困难原因 public static final String SMS_DIFFICULTYDEGREE_KEY = "sms_difficultyDegree";// 困难程度 public static final String SMS_UNUSUALCODE_KEY = "sms_unusualCode";// 异常类别码 public static final String SMS_EXAMINEWAY_KEY = "sms_examineWay";// 考试方式码 public static final String SMS_AWARDLEVECODE_KEY = "sms_awardLeveCode";// 奖励级别码 public static final String SMS_AWARDGRADECODE_KEY = "sms_awardGradeCode";// 奖励等级码 public static final String SMS_AWARDCODE_KEY = "sms_awardCode";// 获奖类别码 public static final String SMS_BONUSCODE_KEY = "sms_bonusCode";// 奖励类型码 public static final String SMS_BONUSMETHODS_KEY = "sms_bonusMethods";// 奖励方式码 public static final String SMS_DISPOSALNAME_KEY = "sms_disposalName";// 处分名称码 public static final String SMS_TRANSACTIONLEVE_KEY = "sms_transactionLeve";// 异动类别 public static final String SMS_TRANSACTIONREASON_KEY = "sms_transactionReason";// 异动原因 public static final String SMS_GRADUATETO_KEY = "sms_graduateTo";// 毕业去向 public static final String TMS_COURSEMANAGE_KEY = "tms_courseManage";// 教育部基础课程 public static final String TMS_SCHOOLYEAR_KEY = "tms_schoolYear";// 学年 public static final String TMS_TRIMESTER_KEY = "tms_trimester";// 学期 public static final String TMS_CLASSQUALITY_KEY = "tms_classQuality";// 班级性质 public static final String TMS_WISH_KEY = "tms_wish";// 志愿 public static final String TMS_FEATURES_KEY = "tms_features";// 特长 public static final String AMS_JOBTITLE_KEY = "ams_jobTitle";// 职称 public static final String AMS_COMPILETYPE_KEY = "ams_compileType";// 编制类型 public static final String AMS_MARIAGESTATE_KEY = "ams_mariageState";// 婚姻状况 public static final String AMS_LEAMINGSTYLES_KEY = "ams_leamingStyles";// 学习方式 public static final String AMS_USESTATE_KEY = "ams_useState";// 使用状况 public static final String AMS_STRUCTURESORT_KEY = "ams_structureSort";// 建筑物分类 public static final String AMS_STRUCTUREFLAT_KEY = "ams_structureFlat";// 建筑物结构 public static final String AMS_FFUNDSOURCE_KEY = "ams_fFundSource";// 经费来源 public static final String AMS_SEISMICSTRENGTH_KEY = "ams_seismicStrength";// 抗震设防烈度 public static final String AMS_SEISMICNORM_KEY = "ams_seismicNorm";// 抗震设防标准 public static final String AMS_STRUCTURESTATE_KEY = "ams_structureState";// 建筑物状况 public static final String AMS_STRUCTUREUSE_KEY = "ams_structureUse";// 建筑物用途 public static final String AMS_STRUCTUREUSE_TEACH_KEY = "ams_structureUse_teach";// 建筑物用途 public static final String AMS_STRUCTUREUSE_LIVE_KEY = "ams_structureUse_live";// 生活用房 public static final String AMS_STRUCTUREUSE_AMS_KEY = "ams_structureUse_ams";// 行政办公用房 public static final String AMS_STRUCTUREUSE_OTHER_KEY = "ams_structureUse_other";// 其他 public static final String AMS_HEATINGWAY_KEY = "ams_heatingWay";// 供暖方式 public static final String AMS_STRUCTUREBASETYPE_KEY = "ams_structureBaseType";// 建筑物基础形式 public static final String AMS_STRUCTUREFLATTYPE_KEY = "ams_structureFlatType";// 建筑物平面形式 public static final String AMS_STRUCTUREFLOORTYPE_KEY = "ams_structureFloorType";// 建筑物楼板形式 public static final String AMS_NATIONALNAME_KEY = "ams_nationalName";// 中央专项投资补助名称 public static final String AMS_STRUCTURELEVE_KEY = "ams_structureLeve";// 文物建筑等级 public static final String AMS_CLASSTYPE_KEY = "ams_classType";// 教室类型 public static final String AMS_CLASSUSESTATUS_KEY = "ams_classUseStatus";// 教室占用情况(用途) public static final String OAS_LEAVETYPE_KEY = "oas_leaveMessage";// 请假类型 //public static final String OAS_APPROVAL_KEY = "oas_approval";// 审批状态, 这个没有了 }
package com.xk.lang.redis;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import com.alibaba.fastjson.JSON;
import com.xk.cbs.ums.user.po.UserInfo; /**
*
* @author lsm
*
*/ public class RedisOperate { private ShardedJedisPoolService shardedJedisPoolService; private UserInfo user; private final static String name = "userToken"; public UserInfo getUser() {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
String userToken = null;
if (request != null) {
// System.out.println(request.getSession().getId());
Cookie[] cookies = request.getCookies();
if (null != cookies && cookies.length > 0) {
for (Cookie cookie : cookies) {
// System.out.println(cookie.getValue()+"---"+cookie.getName());
if (cookie.getName().equals(name))
userToken = cookie.getValue();
}
}
}
setUser(userToken);
return user;
} private void setUser(String userToken) {
if (StringUtils.isNotBlank(userToken) && shardedJedisPoolService != null) {
String value = shardedJedisPoolService.get(RedisKeyConstant.LOGIN_USER_PERFIX + userToken);
this.user = JSON.parseObject(value,UserInfo.class);
/*ShardedJedis shardedJedis = null;
try {
shardedJedis = shardedJedisPoolService.getResource();
String value = shardedJedis.get(RedisKeyConstant.LOGIN_USER_PERFIX + userToken);
this.user = JSON.parseObject(value,UserInfo.class);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (shardedJedis != null){
shardedJedis.close();
}
}*/
}
} public RedisOperate(ShardedJedisPoolService shardedJedisPoolService) {
this.shardedJedisPoolService = shardedJedisPoolService;
}
/**
* public UserInfo getUserInfo() { String userToken =
* request.getParameter("userToken") + ""; ShardedJedis shardedJedis =
* shardedJedisPoolService.getResource(); String userInfoString =
* shardedJedis.get(userToken); UserInfo userInfo =
* JSON.parseObject(userInfoString, UserInfo.class); shardedJedis.close();
* return userInfo; }
**/
}
package com.xk.lang.redis;

import java.util.Collection;
import java.util.Map; import redis.clients.jedis.Jedis; public interface ShardedJedisPoolService { //ShardedJedis getResource(); boolean ping(); boolean isConnect(); /**
* 根据key获取map类型值
* @param key
* @return
*/
Map<String, String> hgetAll(String key); /**
* 根据key获取String类型值
* @param key
* @return
*/
String get(String key); /**
* 判断key是否存在
* @param key
* @return
*/
Boolean exists(String key); /**
* 设置String类型值
* @param key
* @param value
* @return
*/
String set(String key, String value); /**
* 获取所有的分片
* @return
*/
Collection<Jedis> getAllShards(); /**
* 根据key与field获取String类型
* @param key
* @param field
* @return
*/
String hget(String key, String field); /**
* 设置String听类型值
* @param key
* @param field
* @param value
* @return
*/
Long hset(String key, String field, String value); /**
* 删除值
* @param key
* @param fields
* @return
*/
Long hdel(String key, String... fields); /**
* 设置String类型值,设置超时时间
* @param key
* @param seconds
* @param value
* @return
*/
String setex(String key, int seconds, String value);
}
package com.xk.lang.redis;

import java.util.Collection;
import java.util.Map; import redis.clients.jedis.Jedis;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool; public class ShardedJedisPoolServiceImpl implements ShardedJedisPoolService { private ShardedJedisPool shardedJedisPool; private ShardedJedis getResource() {
return getShardedJedisPool().getResource();
} @Override
public boolean ping() {
ShardedJedis shardedJedis = this.getResource();
for (Jedis jedis : shardedJedis.getAllShards()) {
if (!"PONG".equals(jedis.ping())) {
return false;
}
}
return true;
} public void setShardedJedisPool(ShardedJedisPool shardedJedisPool) {
this.shardedJedisPool = shardedJedisPool;
} public ShardedJedisPool getShardedJedisPool() {
if (shardedJedisPool == null) {
throw new NullPointerException("shardedJedisPool must not be null.");
}
return shardedJedisPool;
} public boolean isConnect() {
boolean isExists = false;
if (shardedJedisPool != null) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
boolean isPong = true;
for (Jedis jedis : shardedJedis.getAllShards()) {
if (!"PONG".equals(jedis.ping())) {
isPong = false;
break;
}
}
if (isPong)
isExists = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (shardedJedis != null)
shardedJedis.close();
}
}
return isExists;
} @Override
public Map<String, String> hgetAll(String key) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
Map<String, String> map = shardedJedis.hgetAll(key);
return map;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public String get(String key) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
String returnValue = shardedJedis.get(key);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public Boolean exists(String key) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
Boolean returnValue = shardedJedis.exists(key);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return Boolean.FALSE;
} @Override
public String set(String key, String value) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
String returnValue = shardedJedis.set(key, value);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public Collection<Jedis> getAllShards() {
ShardedJedis shardedJedis = null;
try{
shardedJedis = this.getResource();
Collection<Jedis> allShards = shardedJedis.getAllShards();
return allShards;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public String hget(String key, String field) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
String returnValue = shardedJedis.hget(key, field);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public Long hset(String key, String field, String value) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
Long returnValue = shardedJedis.hset(key, field,value);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public Long hdel(String key, String... fields) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
Long returnValue = shardedJedis.hdel(key, fields);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} @Override
public String setex(String key, int seconds, String value) {
ShardedJedis shardedJedis = null;
try {
shardedJedis = this.getResource();
String returnValue = shardedJedis.setex(key, seconds, value);
return returnValue;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(null != shardedJedis){
shardedJedis.close();
}
}
return null;
} }

习课的redis配置记录的更多相关文章

  1. opensips redis配置记录

    说明:本配置目的:增加opensips对 Redis 的支持. 一.步骤: 1.Redis Server 安装. 2.Hiredis Client 安装.Hiredis 是 Redis 官方指定的C语 ...

  2. CentOS 6.6下Redis安装配置记录

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下 ...

  3. redis 配置

    一 Redis 支持写的指令 Redis大概的命令如下:set setnx setex appendincr decr rpush lpush rpushx lpushx linsert lset r ...

  4. redis配置详解

    ##redis配置详解 # Redis configuration file example. # # Note that in order to read the configuration fil ...

  5. Redis配置集群一(window)

    因为接下来的项目要使用到redis作为我们项目的缓存,所以就花了一天时间研究了一下redis的一些用法,因为没转linux虚拟机,所以就决定先研究一下windows版本的redis集群.主要是redi ...

  6. redis配置详情

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  7. Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例

    本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1.  摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ...

  8. Redis配置参数详解

    Redis配置参数详解 /********************************* GENERAL *********************************/ // 是否作为守护进 ...

  9. Redis配置主从复制

    Redis配置主从复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作环境介绍 1>.操作系统环境 [root@node101.yinzhengjie.org.cn ...

随机推荐

  1. 初涉hash

    今天和朋友讨论一个问题 有两百亿个数,我给出一个数,找到这两百亿个数中两数相加等于它的组合.要求时间复杂度为线性,空间2G 解决思路是开一个hash表比如a[1000]将所有数存入hash表中,a[i ...

  2. ubuntu 一些命令

    打开终端 ctrl+alt+t 关闭中端 ctrl+shift+q 打开ppt openoffice.org -g xx.ppt &

  3. ASP.NET Razor——ASP.NET Razor - C#代码语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic). 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 ...

  4. (转)AppiumLibrary基本操作

    *** Settings *** Library AppiumLibrary Library Collections Library String Library Dialogs *** Test C ...

  5. ffmpeg音频编码

    在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存. 但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_ ...

  6. MyBatis学习(一)

    前言 再过一个月,转行做java web就满一年了.当初吸引我进入公司的,其实并不是java web,而是领导给我描述的hadoop生态圈.公司的hadoop集群以及大数据业务.可是进入公司后才发现, ...

  7. 基于MVC4+EasyUI的Web开发框架经验总结

    http://www.cnblogs.com/wuhuacong/p/4093778.html 在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图 标,从而是Web系统 ...

  8. Javascript模式(第二章基本技巧)------读书笔记

    本章主要帮助大家写出高质量的JS代码的方法,模式和习惯,例如:避免使用全局变量,使用单个的var变量声明,缓存for循环的长度变量length等 一.尽量避免使用全局变量 1 每一个js环境都有一个全 ...

  9. [PHP] - PDO事务操作

    PHP使用PDO事务操作数据库. 参考文章: http://php.ncong.com/mysql/pdo/pdo_shiwu.html 上代码: <!doctype html> < ...

  10. xcode8让真机测试支持ios8.0以下版本

    xcode8支持ios8以下真机测试方法: 1.应用程序-xcode 显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-DeviceSuppor ...