<!-- 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. 关于vue.js中条件渲染的练习

    html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  2. HTML学习-日常问题-1

    最近入了Html的坑 所以开始了学习前端的漫长道路 所以打算将日常遇到的小问题记录下来 1.关于img自适应的问题 <div class="main"> <div ...

  3. python基础篇

    python脚本开头 #!/usr/bin/env python# -*- coding: utf-8 -*print "你好,世界" 不要问为什么,记住就好了 变量定于的规则 变 ...

  4. Zookeeper 的学习与运用

    引子 云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点? ...

  5. 数位DP之奥义

    恩是的没错数位DP的奥义就是一个简练的dfs模板 int dfs(int position, int condition, bool boundary) { ) return (condition ? ...

  6. 【阿迪达斯 ZX850 系列】

    [阿迪达斯zx850系列 灰蓝桔 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX85 ...

  7. powerdesinger

    www.sap.com solutions>data management>powerdesinger http://www.sap.com/product/data-mgmt/power ...

  8. Centos下安装和配置SVN

    1.安装SVN服务 #检查现有版本 rpm -qa subversion #如果存储旧版本,卸载旧版本SVN yum remove subversion #安装SVN yum install subv ...

  9. elasticsearch【cat API,系统数据】指令汇总

    本博文讲述的ES获取系统数据的API是基于Elasticsearch 2.4.1版本的. 0. overview a. 下面将要介绍的所有的指令,都支持一个查询参数v(verbose),用来显示详细的 ...

  10. NSUserDefault的使用

    NSUserDefaults 在我们编写代码中是最常用的一个永久保存数据的方法,也是最简单的. 使用NSUserDefault需要注意: 1.数据的本地化保存不是实时的,如果需要实时保存,调用sync ...