spring boot 集成 redis_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > spring boot 集成 redis

spring boot 集成 redis

 2019/5/8 12:51:56  我的无奈  程序员俱乐部  我要评论(0)
  • 摘要:springboot集成redis,本人选用xml文件的形式,由于springboot得简单易用,网上多用注解的形式集成redis,话不多说,上代码1、首先配置文件redis-config.properties,初始化redis的一些参数,包括端口、密码等redis.maxIdle=10redis.maxTotal=100redis.database=2redis.timeout=3000redis.host=127.0.0.1redis.password=redis.port=63792
  • 标签:Spring

spring boot 集成redis,本人选用xml文件的形式,由于spring boot 得简单易用,网上多用注解的形式集成redis

,话不多说,上代码

1、首先配置文件redis-config.properties,初始化redis的一些参数,包括端口、密码等

redis.maxIdle=10

redis.maxTotal=100

redis.database=2

redis.timeout=3000

redis.host=127.0.0.1

redis.password=

redis.port=6379

?2、xml配置文件redis-config.xml

?

? ? ? <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

<property name="maxTotal" value="${redis.maxTotal}"/>

<property name="maxIdle" value="${redis.maxIdle}"/>

</bean>

?

<bean id="jedisConnectionFactory"?

class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"?

destroy-method="destroy">

<property name="database" value="${redis.database}"/>

<property name="timeout" value="${redis.timeout}"/>

<property name="usePool" value="true"/>

<property name="poolConfig" value="jedisPoolConfig"/>

<property name="port" value="${redis.port}"/>

<property name="password" value="${redis.password}"/>

<property name="hostName" value="${redis.host}"/>

</bean>

?

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">

<property name="connectionFactory" ref="jedisConnectionFactory"/>

<property name="keySerializer">

<bean?

class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

</property>

<property name="valueSerializer">

<bean?

class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>

</property>

<property name="enableTransactionSupport" value="false"/>

</bean>

?

<!-- <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">

<constructor-arg index="0" ref="redisTemplate"></constructor-arg>

缓存失效时间,这里被我注释了,这里可以设置单个存放于缓存中的参数的有效时间,当然我的失效时间存放于java代码中

<property name="expires">

<map>

<entry key="" value=""></entry>

<entry key="" value=""></entry>

</map>

</property>

</bean> -->

?

<bean id="redisUtil" class="com.wzy.redis.RedisUtil">

? ? ? ? <property name="redisTemplate" ref="redisTemplate" />

? ? </bean>

?

3、RedisUtil工具类

?

@Component

public class RedisUtil {

?

private static final Logger logger = LoggerFactory.getLogger(RedisUtil.class);

?

private RedisTemplate<Serializable, Object> redisTemplate;

?

/**

* 批量删除对应的key

* @param keys

*/

public void remove(final String... keys) {

for(String key : keys) {

remove(key);

}

}

?

/**

* 删除缓存中相应额key

* @param key

*/

public void remove(String key) {

if(exists(key)) {

redisTemplate.delete(key);

}

}

?

/**

* 判断是否存在相应的key

* @param key

* @return

*/

public boolean exists(String key) {

return redisTemplate.hasKey(key);

}

?

/**

* 批量删除key

* @param pattern

*/

public void removePattern(final String pattern) {

Set<Serializable> keys = redisTemplate.keys(pattern);

if(keys.size() > 0) {

redisTemplate.delete(keys);

}

}

?

/**

* 读取缓存

* @param key

* @return

*/

public Object get(final String key) {

Object result = null;

ValueOperations< Serializable, Object> operations = redisTemplate.opsForValue();

result = operations.get(key);

return result;

}

?

/**

* 写入缓存

* @param key

* @param value

* @return

*/

public boolean set(final String key, Object value) {

boolean result = false;

try {

ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();

operations.set(key, value);

result = true;

}catch (Exception e) {

logger.error("set cache error", e);

}

return result;

}

?

/**

* 写入缓存时间,单位秒

* @param key

* @param value

* @param expireTime

* @return

*/

public boolean set(final String key, Object value, Long expireTime) {

boolean result = false;

try {

ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();

operations.set(key, value);

redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);

result = true;

}catch (Exception e) {

logger.error("set cache error", e);

}

return result;

}

?

/**

* 以增量的方式将long值存储在变量中。

* @param key

* @param delta

* @return

*/

public long increment(final String key, long delta) {

return redisTemplate.opsForValue().increment(key, delta);

}

?

public void setRedisTemplate(RedisTemplate<Serializable, Object> redisTemplate) {

this.redisTemplate = redisTemplate;

}

?

这样spring boot就集成了redis,打开redis服务器,就可以使用了。大笑

上一篇: java单向链表 下一篇: 没有下一篇了!
发表评论
用户名: 匿名