1. POM.xml
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.7.0.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.9</version> </dependency>
2. redis.properties
#ip地址
redis.host=192.168.170.129
#端口号
redis.port=6379
#密码
#redis.password=
#链接数据库
#redis.default.db=0
#客户端超时时间单位是毫秒
redis.timeout=100000
#最大空闲数
redis.maxIdle=300
#最大连接数,0表示无限制,如果jedis2.4以后用redis.maxTotal
#redis.maxActive=300
redis.maxTotal=1000
#最大建立连接等待时间
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认18000000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的最大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=true
#在空闲时检查有效性, 默认false
redis.testWhileIdle=true
3. application.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:dbconfig.properties</value> <value>classpath:redis.properties</value> </list> </property> </bean> <!-- ==========================Jedis配置=========================== --> <!-- redis连接池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大空闲数 --> <property name="maxIdle" value="${redis.maxIdle}"/> <!-- 连接池的最大数据库连接数 --> <property name="maxTotal" value="${redis.maxTotal}"/> <!-- 最大建立连接等待时间 --> <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/> <!-- 逐出连接的最小空闲时间 默认1800000毫秒(30分钟) --> <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"/> <!-- 每次逐出检查时,逐出的最大数目,如果为负数就是 : 1/abs(n), 默认3 --> <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/> <!-- 逐出扫描的时间间隔(毫秒)如果为负数,则不运行逐出线程, 默认-1 --> <property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}"/> <!-- 是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 --> <property name="testOnBorrow" value="${redis.testOnBorrow}"/> <!-- 在空闲时检查有效性,默认false --> <property name="testWhileIdle" value="${redis.testWhileIdle}"/> </bean> <!-- redis单节点数据库连接配置 --> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <!-- IP地址 --> <property name="hostName" value="${redis.host}"/> <!-- 端口 --> <property name="port" value="${redis.port}"/> <!-- 密码 --> <!-- <property name="password" value="${redis.password}"/> --> <!-- 客户端超时时间单位是毫秒 --> <property name="timeout" value="${redis.timeout}"/> <!-- 连接池配置 --> <property name="poolConfig" ref="jedisPoolConfig"/> </bean> <!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"/> <!-- 如果不配置Serializer,那么存储的时候缺省使用String,如果用User类型存储,则会提示错误 --> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" /> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> </property> <property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer"/> </property> <!-- 开启事务 --> <property name="enableTransactionSupport" value="true"/> </bean>
4. 最后在Service中注入RedisTemplate
public class TblDeptServiceImpl extends ServiceImpl<TblDeptMapper, TblDept> implements TblDeptService { @Autowired private RedisTemplate redisTemplate; public void setUser() { //用redisTemplate操作 TblDept tblDept = new TblDept(); tblDept.setDeptId(123); tblDept.setRmFlag(1); redisTemplate.opsForHash().put("myhash","user",tblDept); } }