接口 StampManager<K,V>

类型参数:
K - 签章缓存对应Key值的类型。
V - 签章缓存存储数据,对应的具体存储值的类型,
所有超级接口:
org.springframework.beans.factory.InitializingBean
所有已知实现类:
AbstractCountStampManager, AbstractStampManager

public interface StampManager<K,V> extends org.springframework.beans.factory.InitializingBean

Description: Stamp 服务接口

此Stamp非OAuth2 Stamp。而是用于在特定条件下生成后,在一定时间就会消除的标记性Stamp。 例如,幂等、短信验证码、Auth State等,用时生成,然后进行验证,之后再删除的标记Stamp。

作者:
: gengwei.zheng
Date:
: 2021/8/22 15:00
  • 方法概要

    修饰符和类型
    方法
    说明
    boolean
    check(K key, V value)
    校验Stamp值,与本地存储的Stamp 是否匹配
    default boolean
     
    default V
    create(K key)
    创建具体的Stamp签章值,并存储至本地缓存
    default V
    create(K key, long expireAfterWrite, TimeUnit timeUnit)
    创建具体的Stamp签章值,并存储至本地缓存
    default V
    create(K key, Duration expire)
    创建具体的Stamp签章值,并存储至本地缓存
    void
    delete(K key)
    删除与Key对应的Stamp
    get(K key)
    根据key读取Stamp
    过期时间
    default com.alicp.jetcache.AutoReleaseLock
    lock(K key)
    锁定值
    com.alicp.jetcache.AutoReleaseLock
    lock(K key, long expire, TimeUnit timeUnit)
    锁定值
    default com.alicp.jetcache.AutoReleaseLock
    lock(K key, Duration expire)
    锁定值
    boolean
    lockAndRun(K key, long expire, TimeUnit timeUnit, Runnable action)
    锁定并执行操作
    default boolean
    lockAndRun(K key, Runnable action)
    锁定并执行操作
    default boolean
    lockAndRun(K key, Duration expire, Runnable action)
    锁定并执行操作
    nextStamp(K key)
    生成缓存值策略方法,该方法负责生成具体存储的值。
    default void
    put(K key, V value)
    保存与Key对应的Stamp签章值
    void
    put(K key, V value, long expireAfterWrite, TimeUnit timeUnit)
    保存与Key对应的Stamp签章值
    default void
    put(K key, V value, Duration expire)
    保存与Key对应的Stamp签章值

    从接口继承的方法 org.springframework.beans.factory.InitializingBean

    afterPropertiesSet
  • 方法详细资料

    • getExpire

      Duration getExpire()
      过期时间
      返回:
      Duration
    • put

      void put(K key, V value, long expireAfterWrite, TimeUnit timeUnit)
      保存与Key对应的Stamp签章值
      参数:
      key - 存储Key
      value - 与Key对应的Stamp
      expireAfterWrite - 过期时间
      timeUnit - 过期时间单位
    • put

      default void put(K key, V value, Duration expire)
      保存与Key对应的Stamp签章值
      参数:
      key - 存储Key
      value - 与Key对应的Stamp值
      expire - 过期时间Duration
    • put

      default void put(K key, V value)
      保存与Key对应的Stamp签章值
      参数:
      key - 存储Key
      value - 与Key对应的Stamp值
    • nextStamp

      V nextStamp(K key)
      生成缓存值策略方法,该方法负责生成具体存储的值。
      参数:
      key - 签章存储Key值
      返回:
      String
    • create

      default V create(K key, long expireAfterWrite, TimeUnit timeUnit)
      创建具体的Stamp签章值,并存储至本地缓存
      参数:
      key - 签章存储Key值
      expireAfterWrite - 写入之后过期时间。注意:该值每次写入都会覆盖。如果有一个时间周期内的反复存取操作,需要手动计算时间差。
      timeUnit - 时间单位
      返回:
      创建的签章值
    • create

      default V create(K key, Duration expire)
      创建具体的Stamp签章值,并存储至本地缓存
      参数:
      key - 签章存储Key值
      expire - 过期时间Duration
      返回:
      创建的签章值
    • create

      default V create(K key)
      创建具体的Stamp签章值,并存储至本地缓存
      参数:
      key - 与签章存储Key值
      返回:
      创建的签章值
    • check

      校验Stamp值,与本地存储的Stamp 是否匹配
      参数:
      key - 与Stamp对应的Key值
      value - 外部传入的Stamp值
      返回:
      ture 匹配,false 不匹配
      抛出:
      StampParameterIllegalException - 传入Stamp错误
      StampHasExpiredException - 本地数据中没有Stamp或者Stamp已经过期。
      StampMismatchException - Stamp与本地存储值不匹配
    • get

      V get(K key)
      根据key读取Stamp
      参数:
      key - 存储数据Key值
      返回:
      存储的Stamp值
    • delete

      void delete(K key) throws StampDeleteFailedException
      删除与Key对应的Stamp
      参数:
      key - 存储数据Key值
      抛出:
      StampDeleteFailedException - Stamp删除错误
    • containKey

      default boolean containKey(K key)
    • lock

      com.alicp.jetcache.AutoReleaseLock lock(K key, long expire, TimeUnit timeUnit)
      锁定值

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。

      参数:
      key - 存储Key
      expire - 过期时间
      timeUnit - 过期时间单位
      返回:
      AutoReleaseLock
      另请参阅:
    • lock

      default com.alicp.jetcache.AutoReleaseLock lock(K key, Duration expire)
      锁定值

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。

      参数:
      key - 存储Key
      expire - 过期时间Duration
      返回:
      AutoReleaseLock
      另请参阅:
    • lock

      default com.alicp.jetcache.AutoReleaseLock lock(K key)
      锁定值

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。 *

      参数:
      key - 存储Key
      返回:
      AutoReleaseLock
      另请参阅:
    • lockAndRun

      boolean lockAndRun(K key, long expire, TimeUnit timeUnit, Runnable action)
      锁定并执行操作

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。

      参数:
      key - 存储Key
      expire - 过期时间
      timeUnit - 过期时间单位
      action - 需要执行的操作 Runnable
      返回:
      是否执行成功
      另请参阅:
    • lockAndRun

      default boolean lockAndRun(K key, Duration expire, Runnable action)
      锁定并执行操作

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。

      参数:
      key - 存储Key
      expire - 过期时间Duration
      action - 需要执行的操作 Runnable
      返回:
      是否执行成功
      另请参阅:
    • lockAndRun

      default boolean lockAndRun(K key, Runnable action)
      锁定并执行操作

      非堵塞的尝试获取一个锁,如果对应的key还没有锁,返回一个AutoReleaseLock,否则立即返回空。如果Cache实例是本地的,它是一个本地锁,在本JVM中有效;如果是redis等远程缓存,它是一个不十分严格的分布式锁。锁的超时时间由expire和timeUnit指定。多级缓存的情况会使用最后一级做tryLock操作。

      参数:
      key - 存储Key
      action - 需要执行的操作 Runnable
      返回:
      是否执行成功
      另请参阅: