# spring-boot-hredisson-starter **Repository Path**: Qi_JinNian/spring-boot-hredisson-starter ## Basic Information - **Project Name**: spring-boot-hredisson-starter - **Description**: 基于redisson封装的自动装配模块 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-03-11 - **Last Updated**: 2022-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-boot-hredisson-starter #### 介绍 基于redisson封装的自动装配模块 #### 安装教程 mvn install 安装成jar后引入依赖自动注入 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/155736_6f2d43ce_1757357.png "屏幕截图.png") #### 使用说明 1. 参数配置参考RedisConfig.class文件在`application.properties`文件进行配置。
使用配置文件
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/154244_b8d767b3_1757357.png "屏幕截图.png")
配置文件对应spring-boot-hredisson-starter的配置类
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/155637_7682cc6c_1757357.png "屏幕截图.png") 2. RedisServer.class @Autowired即可使用,提供redis的命令服务,按照redis五大基本类型和keys划分。
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/154141_b1507a23_1757357.png "屏幕截图.png") 3. 分布式锁注解 `@HLock`(作用于方法)加载方法上表示是一个由redis分布式锁控制的方法,可根据keys参数基于el表达式设置锁的参数粒度,也可以同时使用`@LockKey`(作用于参数)注解控制锁的粒度。
例子1:`@HLock(waitTime = 10,leaseTime = 60,keys = {"#param","#user.id"})` 其中keys用param参数和user对象的id参数作为锁粒度控制 。
例子2:`@LockKey(value = "name") User user`其中value参数直接写属性名于keys共同控制锁粒度。
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/154332_252a2334_1757357.png "屏幕截图.png") 4. 发布订阅,使用`@RedisSubscribe`(作用于类)和`OnMessage(topic="test")`(作用于方法)注解指定主题进行订阅监听,使用`@RedisSubscribe`注解的类下的所有 所有使用`@OnMessage`注解的方法都可以实现redis的订阅监听,;发布消息则直接注入使用`RedisPublishServer.class`的send方法。
订阅
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/155102_efd965fe_1757357.png "屏幕截图.png")
发布
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/155116_e387d177_1757357.png "屏幕截图.png") 5. 方法缓存,使用`@MethodCache`注解作用于方法,即可实现方法的缓存。
例子:`@MethodCache(name = "testMethodCache", keys = {"#id","#user.name"}, expireTime = 3)`,其中name为指定业务名,key基于el表达式获取传入参数与name共同控制方法缓存粒度,expireTime为过期时间(单位秒)。
![输入图片说明](https://images.gitee.com/uploads/images/2021/0311/155509_d71bbe1e_1757357.png "屏幕截图.png") ### 最后 lock部分参考学习自大牛kl的项目:https://gitee.com/kekingcn/spring-boot-klock-starter?_from=gitee_search