代码拉取完成,页面将自动刷新
同步操作将从 如梦技术/mica 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>redis-plus-redis</artifactId>
<version>${version}</version>
</dependency>
compile("net.dreamlu:redis-plus-redis:${version}")
示例:
@Cacheable(value = "user#300", key = "#id")
public String selectById(Serializable id) {
log.info("selectById");
return "selectById:" + id;
}
MicaRedisCache 为简化 redis 使用的 bean。
@Autowired
private MicaRedisCache redisCache;
@Override
public String findById(Serializable id) {
return redisCache.get("user:" + id, () -> userMapper.selectById(id));
}
使用 protostuff
做的 redis
序列化和反序列化。
protostuff
默认是根据 Model 属性顺序
进行序列化,如果在中间插入
或者删除字段
。
需要添加 @io.protostuff.Tag(1) 注解进行顺序
的标注。
注解 | 描述 |
---|---|
@Tag(1) | Model 属性顺序 标注 |
@Exclude | 排除字段,不进行序列化和反序列化 |
@Morph | Set、List、Map 等集合添加 |
mica:
redis:
rate-limiter:
enable: true
@RateLimiter
注解变量:
/**
* 限流的 key 支持,必须:请保持唯一性
*
* @return key
*/
String value();
/**
* 限流的参数,可选,支持 spring el # 读取方法参数和 @ 读取 spring bean
*
* @return param
*/
String param() default "";
/**
* 支持的最大请求,默认: 2500
*
* @return 请求数
*/
long max() default 2500L;
/**
* 持续时间,默认: 3600
*
* @return 持续时间
*/
long ttl() default 3600L;
/**
* 时间单位,默认为秒
*
* @return TimeUnit
*/
TimeUnit timeUnit() default TimeUnit.SECONDS;
@Autowired
private RateLimiterClient rateLimiterClient;
方法:
/**
* 服务是否被限流
*
* @param key 自定义的key,请保证唯一
* @param max 支持的最大请求
* @param ttl 时间,单位默认为秒(seconds)
* @return 是否允许
*/
boolean isAllowed(String key, long max, long ttl);
/**
* 服务是否被限流
*
* @param key 自定义的key,请保证唯一
* @param max 支持的最大请求
* @param ttl 时间
* @param timeUnit 时间单位
* @return 是否允许
*/
boolean isAllowed(String key, long max, long ttl, TimeUnit timeUnit);
/**
* 服务限流,被限制时抛出 RateLimiterException 异常,需要自行处理异常
*
* @param key 自定义的key,请保证唯一
* @param max 支持的最大请求
* @param ttl 时间
* @param supplier Supplier 函数式
* @return 函数执行结果
*/
<T> T allow(String key, long max, long ttl, CheckedSupplier<T> supplier);
/**
* 服务限流,被限制时抛出 RateLimiterException 异常,需要自行处理异常
*
* @param key 自定义的key,请保证唯一
* @param max 支持的最大请求
* @param ttl 时间
* @param supplier Supplier 函数式
* @return 函数执行结果
*/
<T> T allow(String key, long max, long ttl, TimeUnit timeUnit, CheckedSupplier<T> supplier);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。