From 924d6e9b8ce277fffa6374afe3928e7cd45cedcd Mon Sep 17 00:00:00 2001 From: lzy <1768422698@qq.com> Date: Tue, 17 Dec 2024 00:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/CaptchaCacheServiceRedisImpl.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/adapter/CaptchaCacheServiceRedisImpl.java diff --git a/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/adapter/CaptchaCacheServiceRedisImpl.java b/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/adapter/CaptchaCacheServiceRedisImpl.java new file mode 100644 index 0000000..f85015c --- /dev/null +++ b/yami-shop-security/yami-shop-security-common/src/main/java/com/yami/shop/security/common/adapter/CaptchaCacheServiceRedisImpl.java @@ -0,0 +1,79 @@ +package com.yami.shop.security.common.adapter; + +import com.anji.captcha.service.CaptchaCacheService; +import com.yami.shop.common.util.RedisUtil; + +/** + * CaptchaCacheServiceRedisImpl类的主要作用是将验证码相关的数据存储适配到Redis中。 + * 它实现了CaptchaCacheService接口,意味着需要按照该接口定义的方法规范来实现具体的功能, + * 从而为验证码服务提供基于Redis的缓存操作功能,例如存储验证码、判断验证码是否存在、删除验证码以及获取验证码等操作, + * 使得验证码相关的数据可以在Redis中进行有效的管理和操作。 + * + * @author 菠萝凤梨 + * @date 2022/3/25 17:33 + */ +public class CaptchaCacheServiceRedisImpl implements CaptchaCacheService { + + /** + * 此方法用于将指定的键值对存储到Redis中,并设置过期时间(以秒为单位)。 + * 它调用了RedisUtil工具类中的set方法来实际执行向Redis存储数据的操作, + * 将传入的键(key)、值(value)以及过期时间(expiresInSeconds)传递给RedisUtil的对应方法进行处理。 + * + * @param key 要存储到Redis中的键,用于唯一标识验证码相关的数据。 + * @param value 要存储到Redis中的值,通常为验证码的具体内容等相关信息。 + * @param expiresInSeconds 数据在Redis中的过期时间,单位为秒,超过这个时间后数据将自动从Redis中删除。 + */ + @Override + public void set(String key, String value, long expiresInSeconds) { + RedisUtil.set(key, value, expiresInSeconds); + } + + /** + * 此方法用于判断在Redis中是否存在指定的键对应的验证码数据。 + * 通过调用RedisUtil工具类中的hasKey方法来实现判断逻辑, + * 如果Redis中存在该键,则表示对应的验证码数据存在,返回true;否则返回false。 + * + * @param key 要检查其是否存在的键,对应着可能存储在Redis中的验证码相关数据的标识。 + * @return 如果Redis中存在该键对应的验证码数据,则返回true;否则返回false。 + */ + @Override + public boolean exists(String key) { + return RedisUtil.hasKey(key); + } + + /** + * 此方法用于从Redis中删除指定键对应的验证码数据。 + * 调用RedisUtil工具类中的del方法来执行从Redis中删除数据的实际操作, + * 使得对应的验证码相关信息在Redis中被移除,不再占用存储空间。 + * + * @param key 要从Redis中删除其对应数据的键,即要删除的验证码相关数据在Redis中的标识。 + */ + @Override + public void delete(String key) { + RedisUtil.del(key); + } + + /** + * 此方法用于从Redis中获取指定键对应的验证码数据的值(通常就是验证码的具体内容)。 + * 借助RedisUtil工具类中的get方法来实现从Redis中查找并返回对应值的功能, + * 如果键存在,则返回对应的验证码数据的值;如果不存在,则返回相应的默认值(根据RedisUtil的实现来确定)。 + * + * @param key 要从Redis中获取其对应值的键,即要获取的验证码相关数据在Redis中的标识。 + * @return 从Redis中获取到的指定键对应的验证码数据的值,如果键不存在则返回相应结果(由RedisUtil决定)。 + */ + @Override + public String get(String key) { + return RedisUtil.get(key); + } + + /** + * 此方法用于返回当前缓存服务所使用的存储类型,在这里明确返回“redis”, + * 表明本实现类是将验证码相关数据存储在Redis中的,方便外部代码知晓和区分不同的缓存存储实现方式。 + * + * @return 始终返回“redis”,表示该缓存服务基于Redis进行数据存储。 + */ + @Override + public String type() { + return "redis"; + } +} \ No newline at end of file