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 TypeMethodDescriptionvoid
addToBlackCache
(IpBlackEntity entity) 添加IP到黑名单缓存void
addToWhiteCache
(IpWhiteEntity entity) 添加IP到白名单缓存private boolean
checkCidrMatch
(String cacheKey, String ip) 检查CIDR匹配private boolean
检查IP是否在黑名单中(实际检查逻辑)private boolean
检查IP是否在白名单中(实际检查逻辑)void
清除所有IP缓存void
clearIpCache
(String ip) 清除IP相关的缓存结果获取缓存统计信息void
initBlackListCache
(List<IpBlackEntity> blackList) 初始化黑名单缓存void
initWhiteListCache
(List<IpWhiteEntity> whiteList) 初始化白名单缓存boolean
检查IP是否在黑名单中boolean
检查IP是否在白名单中void
removeFromBlackCache
(IpBlackEntity entity) 从黑名单缓存中删除IPvoid
removeFromWhiteCache
(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匹配
-