Interface StampManager<K,V>
- Type Parameters:
K- 签章缓存对应Key值的类型。V- 签章缓存存储数据,对应的具体存储值的类型,
- All Superinterfaces:
org.springframework.beans.factory.InitializingBean
- All Known Implementing Classes:
AbstractCountStampManager,AbstractStampManager
Description: Stamp 服务接口
此Stamp非OAuth2 Stamp。而是用于在特定条件下生成后,在一定时间就会消除的标记性Stamp。 例如,幂等、短信验证码、Auth State等,用时生成,然后进行验证,之后再删除的标记Stamp。
- Author:
- : gengwei.zheng
- Date:
- : 2021/8/22 15:00
-
Method Summary
Modifier and TypeMethodDescriptionboolean校验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签章值Methods inherited from interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
-
Method Details
-
getExpire
Duration getExpire()过期时间- Returns:
Duration
-
put
保存与Key对应的Stamp签章值- Parameters:
key- 存储Keyvalue- 与Key对应的StampexpireAfterWrite- 过期时间timeUnit- 过期时间单位
-
put
保存与Key对应的Stamp签章值- Parameters:
key- 存储Keyvalue- 与Key对应的Stamp值expire- 过期时间Duration
-
put
保存与Key对应的Stamp签章值- Parameters:
key- 存储Keyvalue- 与Key对应的Stamp值
-
nextStamp
生成缓存值策略方法,该方法负责生成具体存储的值。- Parameters:
key- 签章存储Key值- Returns:
String
-
create
创建具体的Stamp签章值,并存储至本地缓存- Parameters:
key- 签章存储Key值expireAfterWrite- 写入之后过期时间。注意:该值每次写入都会覆盖。如果有一个时间周期内的反复存取操作,需要手动计算时间差。timeUnit- 时间单位- Returns:
- 创建的签章值
-
create
创建具体的Stamp签章值,并存储至本地缓存- Parameters:
key- 签章存储Key值expire- 过期时间Duration- Returns:
- 创建的签章值
-
create
创建具体的Stamp签章值,并存储至本地缓存- Parameters:
key- 与签章存储Key值- Returns:
- 创建的签章值
-
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 是否匹配- Parameters:
key- 与Stamp对应的Key值value- 外部传入的Stamp值- Returns:
- ture 匹配,false 不匹配
- Throws:
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- Parameters:
key- 存储数据Key值- Returns:
- 存储的Stamp值
-
delete
删除与Key对应的Stamp- Parameters:
key- 存储数据Key值
-
containKey
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- Parameters:
key- 存储Keyexpire- 过期时间timeUnit- 过期时间单位- Returns:
AutoReleaseLock- See Also:
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- Parameters:
key- 存储Keyexpire- 过期时间Duration- Returns:
AutoReleaseLock- See Also:
-
lock
锁定值非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。 *
- Parameters:
key- 存储Key- Returns:
AutoReleaseLock- See Also:
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- Parameters:
key- 存储Keyexpire- 过期时间timeUnit- 过期时间单位action- 需要执行的操作Runnable- Returns:
- 是否执行成功
- See Also:
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
-
lockAndRun
锁定并执行操作非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。
- Parameters:
key- 存储Keyaction- 需要执行的操作Runnable- Returns:
- 是否执行成功
- See Also:
-