您的位置:首页 > 数据库 > Redis

spring boot使用redis

2016-12-09 15:21 537 查看
首先加配置到application.properties中:

spring.redis.host=dev-redis.host
spring.redis.password=111111
spring.redis.port=6379
spring.redis.timeout=30000
spring.redis.pool.max-active=200
spring.redis.pool.min-idle=10
spring.redis.pool.max-idle=50
spring.redis.pool.max-wait=300
spring.redis.database=0


其次创建BaseRedis基类:

public class BaseRedis<K,V> {

@Autowired
protected RedisTemplate<K, V> redisTemplate;

/**
* 设置redisTemplate
* @param redisTemplate the redisTemplate to set
*/
public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) {
this.redisTemplate = redisTemplate;
}

/**
* 获取 RedisSerializer
* <br>------------------------------<br>
*/
protected RedisSerializer<String> getRedisSerializer() {
return redisTemplate.getStringSerializer();
}
}


最后添加CacheService继承BaseRedis:

@Service
public class CacheService extends BaseRedis<String, String> {

/**
* set element to zset by score
* @param key
* @param score
* @param value
* @param <T>
* @return
*/
public <T> Boolean setPush(String key, Long score, T value) {
String objSerial = Utils.toJson(value);
Boolean isSuccess = redisTemplate.execute((RedisCallback<Boolean>) redisConnection -> {
Boolean bool = redisConnection.zAdd(key.getBytes(), score, objSerial.getBytes());
return bool;
});
return isSuccess;
}

/**
* get list of element on the range between start time and stop time
* @param key
* @param start
* @param stop
* @param clazz
* @param <T>
* @return
*/
public <T> List<T> setPopRangeByScore(String key, Long start, Long stop, Class<T> clazz) {
List<T> clazzList = new ArrayList<T>();
redisTemplate.execute((RedisCallback<T>) redisConnection -> {
Set<byte[]> bytes = redisConnection.zRangeByScore(key.getBytes(), start, stop);
bytes.forEach(aByte -> clazzList.add(Utils.parseJson(aByte, clazz)));
return null;
});
return clazzList;

}

/**
* remove element of zset score between start time and stop time
* @param key
* @param start
* @param stop
*/
public void removeByScore(String key, Long start, Long stop) {
redisTemplate.execute((RedisCallback<Boolean>) redisConnection -> {
Long along = redisConnection.zRemRangeByScore(key.getBytes(), start, stop);
return along > 0;
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: