SpringBoot集成redisson操作redis
1 引入maven
只需引入redisson-spring-boot-starter就可以了,不过这里需要注意springboot与redisson的版本,因为官方推荐redisson版本与springboot版本配合使用。版本不匹配会导致这种问题。
将 Redisson 与 Spring Boot 库集成。取决于Spring Data Redis模块,支持 Spring Boot 1.3.x - 2.4.x
这句话是官方说的,不过现在的2.5.x也是支持的,只需要注意springboot最低版本不要低于1.3.x即可。
redisson-spring-data与Spring Boot version的版本对应关系
redisson-spring-data module name | Spring Boot version |
---|---|
redisson-spring-data-16 | 1.3.x |
redisson-spring-data-17 | 1.4.x |
redisson-spring-data-18 | 1.5.x |
redisson-spring-data-20 | 2.0.x |
redisson-spring-data-21 | 2.1.x |
redisson-spring-data-22 | 2.2.x |
redisson-spring-data-23 | 2.3.x |
redisson-spring-data-24 | 2.4.x |
点击redisson-spring-boot-starter进去
org.redisson
redisson-spring-data-26
${project.version}
依赖的springboot版本为2.6
若与项目中版本不匹配
可如此处理
maven依赖
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.13.2</version> </dependency>
2 配置文件
spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=xxxx spring.redis.timeout=3000 spring.redis.lettuce.pool.max-active=20 spring.redis.lettuce.pool.max-wait=-1 spring.redis.lettuce.pool.max-idle=20 spring.redis.lettuce.pool.min-idle=0 spring.redis.redisson.config.singleServerConfig.idleConnectionTimeout=10000 spring.redis.redisson.config.singleServerConfig.pingTimeout=1000 spring.redis.redisson.config.singleServerConfig.connectTimeout=10000 spring.redis.redisson.config.singleServerConfig.timeout=3000 spring.redis.redisson.config.singleServerConfig.retryAttempts=3 spring.redis.redisson.config.singleServerConfig.retryInterval=1500 spring.redis.redisson.config.singleServerConfig.reconnectionTimeout=3000 spring.redis.redisson.config.singleServerConfig.failedAttempts=3 spring.redis.redisson.config.singleServerConfig.password=null spring.redis.redisson.config.singleServerConfig.subscriptionsPerConnection=5 spring.redis.redisson.config.singleServerConfig.clientName=null spring.redis.redisson.config.singleServerConfig.address=redis://127.0.0.1:6379 spring.redis.redisson.config.singleServerConfig.subscriptionConnectionMinimumIdleSize=1 spring.redis.redisson.config.singleServerConfig.subscriptionConnectionPoolSize=50 spring.redis.redisson.config.singleServerConfig.connectionMinimumIdleSize=32 spring.redis.redisson.config.singleServerConfig.connectionPoolSize=64 spring.redis.redisson.config.singleServerConfig.database=0 spring.redis.redisson.config.singleServerConfig.dnsMonitoringInterval=5000 spring.redis.redisson.config.threads=0 spring.redis.redisson.config.nettyThreads=0 spring.redis.redisson.config.transportMode=NIO
3 使用RedissonClient
配置好后,就可以直接在项目中注入 RedissonClient 就可以了。
@Slf4j @Service public class RedissonService { @Autowired private RedissonClient redissonClient; //设置token值 public void setToken(String key, String value) { RBucket<String> bucket = redissonClient.getBucket(key, new StringCodec()); bucket.set(value, 60*60*2, TimeUnit.SECONDS); } //获取token值 public String getToken(String key) { RBucket<String> bucket = redissonClient.getBucket(key,new StringCodec()); return bucket.get(); } //判断redis的值是否存在 private boolean hasKey(String key) { RBucket<String> bucket = redissonClient.getBucket(key, new StringCodec()); return bucket.isExists(); } }
1.Unable to decode data String解码问题
在写或者取数据的时候加入编码模式,修改代码为
//设置token值
public void setToken(String key, String value) {
RBucket<String> bucket = redissonClient.getBucket(key, new StringCodec());
bucket.set(value, 60*60*2, TimeUnit.SECONDS);
}
//判断redis的值是否存在
private boolean hasKey(String key) {
RBucket<String> bucket = redissonClient.getBucket(key, new StringCodec());
return bucket.isExists();
}
参考:
https://blog.csdn.net/DerekSu/article/details/106472042
https://blog.csdn.net/s_156/article/details/130847610
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix