Package com.bytedesk.core.ip_cache
Class IpCacheService
java.lang.Object
com.bytedesk.core.ip_cache.IpCacheService
IP缓存服务 - 使用Redis缓存提高IP匹配效率
优化策略:
1. 精确IP匹配:使用Redis Set存储单个IP
2. CIDR范围匹配:使用Redis Set存储CIDR范围
3. 缓存结果:缓存IP匹配结果,避免重复计算
4. 过期时间:设置合理的过期时间,自动清理
5. 分布式支持:Redis支持分布式部署
6. 全局配置:仅存储全局IP配置,不区分组织
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToBlackCache(IpBlackEntity entity) 添加IP到黑名单缓存voidaddToWhiteCache(IpWhiteEntity entity) 添加IP到白名单缓存private booleancheckCidrMatch(String cacheKey, String ip) 检查CIDR匹配private boolean检查IP是否在黑名单中(实际检查逻辑)private boolean检查IP是否在白名单中(实际检查逻辑)void清除所有IP缓存voidclearIpCache(String ip) 清除IP相关的缓存结果获取缓存统计信息voidinitBlackListCache(List<IpBlackEntity> blackList) 初始化黑名单缓存voidinitWhiteListCache(List<IpWhiteEntity> whiteList) 初始化白名单缓存boolean检查IP是否在黑名单中boolean检查IP是否在白名单中voidremoveFromBlackCache(IpBlackEntity entity) 从黑名单缓存中删除IPvoidremoveFromWhiteCache(IpWhiteEntity entity) 从白名单缓存中删除IP
-
Field Details
-
redisTemplate
-
BYTEDESK_REDIS_PREFIX
- See Also:
-
IP_CACHE_PREFIX
- See Also:
-
WHITE_EXACT_CACHE_KEY
- See Also:
-
BLACK_EXACT_CACHE_KEY
- See Also:
-
WHITE_CIDR_CACHE_KEY
- See Also:
-
BLACK_CIDR_CACHE_KEY
- See Also:
-
RESULT_CACHE_PREFIX
- See Also:
-
CACHE_EXPIRE_HOURS
private static final long CACHE_EXPIRE_HOURS- See Also:
-
-
Constructor Details
-
IpCacheService
public IpCacheService()
-
-
Method Details
-
initWhiteListCache
初始化白名单缓存 -
initBlackListCache
初始化黑名单缓存 -
addToWhiteCache
添加IP到白名单缓存 -
addToBlackCache
添加IP到黑名单缓存 -
removeFromWhiteCache
从白名单缓存中删除IP -
removeFromBlackCache
从黑名单缓存中删除IP -
isIpInWhiteList
检查IP是否在白名单中 -
isIpInBlackList
检查IP是否在黑名单中 -
clearIpCache
清除IP相关的缓存结果 -
clearAllIpCache
public void clearAllIpCache()清除所有IP缓存 -
getCacheStats
获取缓存统计信息 -
checkIpInWhiteList
检查IP是否在白名单中(实际检查逻辑) -
checkIpInBlackList
检查IP是否在黑名单中(实际检查逻辑) -
checkCidrMatch
检查CIDR匹配
-