Interface StampManager<K,V>

Type Parameters:
K - 签章缓存对应Key值的类型。
V - 签章缓存存储数据,对应的具体存储值的类型,
All Superinterfaces:
org.springframework.beans.factory.InitializingBean
All Known Implementing Classes:
AbstractCountStampManager, AbstractStampManager

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

Description: Stamp 服务接口

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

Author:
: gengwei.zheng
Date:
: 2021/8/22 15:00
  • Method Summary

    Modifier and Type
    Method
    Description
    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签章值

    Methods inherited from interface org.springframework.beans.factory.InitializingBean

    afterPropertiesSet
  • Method Details

    • getExpire

      Duration getExpire()
      过期时间
      Returns:
      Duration
    • put

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

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

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

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

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

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

      default V create(K key)
      创建具体的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

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

      void delete(K key)
      删除与Key对应的Stamp
      Parameters:
      key - 存储数据Key值
    • 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操作。

      Parameters:
      key - 存储Key
      expire - 过期时间
      timeUnit - 过期时间单位
      Returns:
      AutoReleaseLock
      See Also:
    • lock

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

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

      Parameters:
      key - 存储Key
      expire - 过期时间Duration
      Returns:
      AutoReleaseLock
      See Also:
    • lock

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

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

      Parameters:
      key - 存储Key
      Returns:
      AutoReleaseLock
      See Also:
    • lockAndRun

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

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

      Parameters:
      key - 存储Key
      expire - 过期时间
      timeUnit - 过期时间单位
      action - 需要执行的操作 Runnable
      Returns:
      是否执行成功
      See Also:
    • lockAndRun

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

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

      Parameters:
      key - 存储Key
      expire - 过期时间Duration
      action - 需要执行的操作 Runnable
      Returns:
      是否执行成功
      See Also:
    • lockAndRun

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

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

      Parameters:
      key - 存储Key
      action - 需要执行的操作 Runnable
      Returns:
      是否执行成功
      See Also: