Class IpCacheService

java.lang.Object
com.bytedesk.core.ip_cache.IpCacheService

@Service public class IpCacheService extends Object
IP缓存服务 - 使用Redis缓存提高IP匹配效率 优化策略: 1. 精确IP匹配:使用Redis Set存储单个IP 2. CIDR范围匹配:使用Redis Set存储CIDR范围 3. 缓存结果:缓存IP匹配结果,避免重复计算 4. 过期时间:设置合理的过期时间,自动清理 5. 分布式支持:Redis支持分布式部署 6. 全局配置:仅存储全局IP配置,不区分组织
  • Field Details

  • Constructor Details

    • IpCacheService

      public IpCacheService()
  • Method Details

    • initWhiteListCache

      public void initWhiteListCache(List<IpWhiteEntity> whiteList)
      初始化白名单缓存
    • initBlackListCache

      public void initBlackListCache(List<IpBlackEntity> blackList)
      初始化黑名单缓存
    • addToWhiteCache

      public void addToWhiteCache(IpWhiteEntity entity)
      添加IP到白名单缓存
    • addToBlackCache

      public void addToBlackCache(IpBlackEntity entity)
      添加IP到黑名单缓存
    • removeFromWhiteCache

      public void removeFromWhiteCache(IpWhiteEntity entity)
      从白名单缓存中删除IP
    • removeFromBlackCache

      public void removeFromBlackCache(IpBlackEntity entity)
      从黑名单缓存中删除IP
    • isIpInWhiteList

      public boolean isIpInWhiteList(String ip)
      检查IP是否在白名单中
    • isIpInBlackList

      public boolean isIpInBlackList(String ip)
      检查IP是否在黑名单中
    • clearIpCache

      public void clearIpCache(String ip)
      清除IP相关的缓存结果
    • clearAllIpCache

      public void clearAllIpCache()
      清除所有IP缓存
    • getCacheStats

      public Map<String,Object> getCacheStats()
      获取缓存统计信息
    • checkIpInWhiteList

      private boolean checkIpInWhiteList(String ip)
      检查IP是否在白名单中(实际检查逻辑)
    • checkIpInBlackList

      private boolean checkIpInBlackList(String ip)
      检查IP是否在黑名单中(实际检查逻辑)
    • checkCidrMatch

      private boolean checkCidrMatch(String cacheKey, String ip)
      检查CIDR匹配