
SpringBoot整合Redis-RedisTemplate
发布日期:2021-05-09 04:58:03
浏览次数:17
分类:博客文章
本文共 12305 字,大约阅读时间需要 41 分钟。
org.springframework.boot spring-boot-starter-data-redis
spring: ### 配置Redis # Redis数据库索引(默认为0) redis: database: 0 # Redis服务器地址 host: 172.16.250.238 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) password: 123456 # 配置连接池 jedis: pool: # 连接池最大连接数(使用负值表示没有限制) max-active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1 # 连接池中的最大空闲连接 max-idle: 500 # 连接池中的最小空闲连接 min-idle: 0 # 连接超时时间(毫秒) timeout: 2000 lettuce: shutdown-timeout: 0
public class SpringRedisApplicationTests { @Autowired private ApplicationContext context; @Resource private RedisTemplateredisTemplate; @Autowired private StringRedisTemplate stringRedisTemplate; @Test public void RedisTemplateTest() { System.out.println(redisTemplate); // 结果: org.springframework.data.redis.core.RedisTemplate@314c8b4a redisTemplate.opsForValue().set("db-type", "redis"); System.out.println(redisTemplate.opsForValue().get("db-type")); // 结果: redis } @Test public void StringRedisTemplateTest() { System.out.println(stringRedisTemplate); // 结果: org.springframework.data.redis.core.RedisTemplate@314c8b4a stringRedisTemplate.opsForValue().set("db-type", "mongodb"); System.out.println(stringRedisTemplate.opsForValue().get("db-type")); // 结果: mongodb System.out.println(redisTemplate.opsForValue().get("db-type")); // 结果: redis } @Test public void RedisConnectionFactoryTest() { RedisConnectionFactory redisConnectionFactoryBean = context.getBean(RedisConnectionFactory.class); System.out.println(redisConnectionFactoryBean); // 结果: org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory@59496961 } }
工具类
@Componentpublic class RedisUtil { @Resource private RedisTemplateredisTemplate; /** * 指定缓存失效时间 * * @param key * @param time 时间(秒) * @return */ public boolean expire(String key, long time) { try { if (time > 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 根据key 获取过期时间 * * @param key * @return 时间(秒) 返回0代表为永久有效 */ public long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * @param key * @return true 存在 false不存在 */ public boolean hasKey(String key) { try { return redisTemplate.hasKey(key); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 删除键值 * * @param key 可以传一个值 或多个 */ @SuppressWarnings("unchecked") public void del(String... key) { if (key != null && key.length > 0) { if (key.length == 1) { redisTemplate.delete(key[0]); } else { redisTemplate.delete(CollectionUtils.arrayToList(key)); } } } /** * 获取键值 * * @param key * @return */ public Object get(String key) { return key == null ? null : redisTemplate.opsForValue().get(key); } /** * 设置键值 * * @param key * @param value * @return true成功 false失败 */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 设置键值同时指定过期时间 * * @param key * @param value * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 * @return true成功 false 失败 */ public boolean set(String key, Object value, long time) { try { if (time > 0) { redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } else { set(key, value); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 键值递增 * * @param key * @param delta 要增加几(大于0) * @return */ public long incr(String key, long delta) { if (delta < 0) { throw new RuntimeException("递增因子必须大于0"); } return redisTemplate.opsForValue().increment(key, delta); } /** * 键值递减 * * @param key * @param delta 要减少几(小于0) * @return */ public long decr(String key, long delta) { if (delta < 0) { throw new RuntimeException("递减因子必须大于0"); } return redisTemplate.opsForValue().increment(key, -delta); } /** * 获取HashGet * * @param key * @param item * @return */ public Object hget(String key, String item) { return redisTemplate.opsForHash().get(key, item); } /** * 设置HashGet * * @param key * @return */ public Map
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月10日 01时53分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构课设--3哈夫曼编码译码系统(树应用)
2021-05-09
pku 1061 青蛙的约会 扩展欧几里得
2021-05-09
Spring Boot 2.4 配置文件将加载机制大变化
2021-05-09
javascript 用函数语句和表达式定义函数的区别
2021-05-09
也来玩玩 javascript对象深拷贝,浅拷贝
2021-05-09
Kubernetes实战总结 - 动态存储管理StorageClass
2021-05-09
【三思笔记】 全面学习Oracle分区表及分区索引
2021-05-09
wcf webHttpBinding Post 大数据量提交 ios c#客户端
2021-05-09
[LeetCode题解]141. 环形链表 | 快慢指针
2021-05-09
MySQL错误日志(Error Log)
2021-05-09
MySQL二进制文件(binlog)
2021-05-09
Redis性能篇(二)CPU核和NUMA架构的影响
2021-05-09
C基础 带你手写 redis ae 事件驱动模型
2021-05-09
C基础 工程中常用的排序
2021-05-09
6.Android-五大布局
2021-05-09
第3阶段——内核启动分析之start_kernel初始化函数(5)
2021-05-09
12.Linux之输入子系统分析(详解)
2021-05-09
19.QT-事件发送函数sendEvent()、postEvent()
2021-05-09
源码解析之 Mybatis 对 Integer 参数做了什么手脚?
2021-05-09