spring boot使用redis
2016-12-09 15:21
537 查看
首先加配置到application.properties中:
其次创建BaseRedis基类:
最后添加CacheService继承BaseRedis:
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; }); } }
相关文章推荐
- centos安装redis
- Redis的多种启动方式比较!
- Redis的多种启动方式比较! 推荐
- Linux(Centos)之安装Redis及注意事项
- 面试题:用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次
- Python之Redis操作
- Redis 集群
- 转:Spring-session & redis 子域名共享session
- python redis模块订阅与发布
- Redis常用命令(String数据类型)
- redis sentinel哨兵机制的源码分析
- CentOS7下Redis的安装
- Windows下安装并设置Redis
- Redis系列之(二):Redis主从同步,读写分离
- Redis系列之(一):10分钟玩转Redis
- Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
- Redis报错All sentinels down, cannot determine where is mymaster master is running...
- 桌面管理工具————Redis Desktop Manager
- redis 优化
- redis 命令详解