接口 StampManager<K,V>
- 类型参数:
K- 签章缓存对应Key值的类型。V- 签章缓存存储数据,对应的具体存储值的类型,
- 所有超级接口:
org.springframework.beans.factory.InitializingBean
Description: Stamp 服务接口
此Stamp非OAuth2 Stamp。而是用于在特定条件下生成后,在一定时间就会消除的标记性Stamp。 例如,幂等、短信验证码、Auth State等,用时生成,然后进行验证,之后再删除的标记Stamp。
- 作者:
- : gengwei.zheng
- Date:
- : 2021/8/22 15:00
-
方法概要
修饰符和类型方法说明boolean校验Stamp值,与本地存储的Stamp 是否匹配default booleancontainKey(K key) default V创建具体的Stamp签章值,并存储至本地缓存default V创建具体的Stamp签章值,并存储至本地缓存default V创建具体的Stamp签章值,并存储至本地缓存void删除与Key对应的Stamp根据key读取Stamp过期时间default com.alicp.jetcache.AutoReleaseLock锁定值com.alicp.jetcache.AutoReleaseLock锁定值default com.alicp.jetcache.AutoReleaseLock锁定值booleanlockAndRun(K key, long expire, TimeUnit timeUnit, Runnable action) 锁定并执行操作default booleanlockAndRun(K key, Runnable action) 锁定并执行操作default booleanlockAndRun(K key, Duration expire, Runnable action) 锁定并执行操作生成缓存值策略方法,该方法负责生成具体存储的值。default void保存与Key对应的Stamp签章值void保存与Key对应的Stamp签章值default void保存与Key对应的Stamp签章值从接口继承的方法 org.springframework.beans.factory.InitializingBean
afterPropertiesSet
-
方法详细资料
-
getExpire
Duration getExpire()过期时间- 返回:
Duration
-
put
保存与Key对应的Stamp签章值- 参数:
key- 存储Keyvalue- 与Key对应的StampexpireAfterWrite- 过期时间timeUnit- 过期时间单位
-
put
保存与Key对应的Stamp签章值- 参数:
key- 存储Keyvalue- 与Key对应的Stamp值expire- 过期时间Duration
-
put
保存与Key对应的Stamp签章值- 参数:
key- 存储Keyvalue- 与Key对应的Stamp值
-
nextStamp
生成缓存值策略方法,该方法负责生成具体存储的值。- 参数:
key- 签章存储Key值- 返回:
String
-
create
创建具体的Stamp签章值,并存储至本地缓存- 参数:
key- 签章存储Key值expireAfterWrite- 写入之后过期时间。注意:该值每次写入都会覆盖。如果有一个时间周期内的反复存取操作,需要手动计算时间差。timeUnit- 时间单位- 返回:
- 创建的签章值
-
create
创建具体的Stamp签章值,并存储至本地缓存- 参数:
key- 签章存储Key值expire- 过期时间Duration- 返回:
- 创建的签章值
-
create
创建具体的Stamp签章值,并存储至本地缓存- 参数:
key- 与签章存储Key值- 返回:
- 创建的签章值
-
check
boolean check(K key, V value) throws cn.herodotus.engine.cache.core.exception.StampParameterIllegalException, cn.herodotus.engine.cache.core.exception.StampHasExpiredException, cn.herodotus.engine.cache.core.exception.StampMismatchException 校验Stamp值,与本地存储的Stamp 是否匹配- 参数:
key- 与Stamp对应的Key值value- 外部传入的Stamp值- 返回:
- ture 匹配,false 不匹配
- 抛出:
cn.herodotus.engine.cache.core.exception.StampParameterIllegalException- 传入Stamp错误cn.herodotus.engine.cache.core.exception.StampHasExpiredException- 本地数据中没有Stamp或者Stamp已经过期。cn.herodotus.engine.cache.core.exception.StampMismatchException- Stamp与本地存储值不匹配
-
get
根据key读取Stamp- 参数:
key- 存储数据Key值- 返回:
- 存储的Stamp值
-
delete
删除与Key对应的Stamp- 参数:
key- 存储数据Key值
-
containKey
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- 参数:
key- 存储Keyexpire- 过期时间timeUnit- 过期时间单位- 返回:
AutoReleaseLock- 另请参阅:
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- 参数:
key- 存储Keyexpire- 过期时间Duration- 返回:
AutoReleaseLock- 另请参阅:
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。 *
- 参数:
key- 存储Key- 返回:
AutoReleaseLock- 另请参阅:
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- 参数:
key- 存储Keyexpire- 过期时间timeUnit- 过期时间单位action- 需要执行的操作Runnable- 返回:
- 是否执行成功
- 另请参阅:
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- 参数:
key- 存储Keyaction- 需要执行的操作Runnable- 返回:
- 是否执行成功
- 另请参阅:
-