Interface ValueCompressor

All Known Implementing Classes:
ValueCompressor.GzipCompressor, ValueCompressor.NoOpCompressor

public interface ValueCompressor
Value Compressor - Compresses and decompresses cache values 值压缩器 - 压缩和解压缓存值

Provides pluggable compression for cache values to reduce memory footprint.

为缓存值提供可插拔的压缩,以减少内存占用。

Features | 主要功能:

  • Multiple algorithms - 多种算法支持
  • Compression threshold - 压缩阈值
  • Compression stats - 压缩统计
  • Thread-safe - 线程安全

Usage Examples | 使用示例:

// Create compressor
ValueCompressor compressor = ValueCompressor.gzip();

// Compress data
byte[] compressed = compressor.compress(originalBytes);

// Decompress data
byte[] decompressed = compressor.decompress(compressed);

Security | 安全性:

  • Thread-safe: Implementation-dependent - 线程安全: 取决于实现
  • Null-safe: Yes - 空值安全: 是
Since:
JDK 25, opencode-base-cache V2.0.5
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
    Builder for ValueCompressor ValueCompressor 构建器
    static class 
    Exception thrown when compression/decompression fails 压缩/解压失败时抛出的异常
    static class 
    GZIP compressor implementation GZIP 压缩器实现
    static class 
    No-op compressor that passes data through unchanged 无操作压缩器,数据直接通过不变
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
    Maximum decompressed size limit to prevent decompression bombs (100 MB).
  • Method Summary

    Modifier and Type
    Method
    Description
    Get compression algorithm 获取压缩算法
    Create compressor builder 创建压缩器构建器
    byte[]
    compress(byte[] data)
    Compress data 压缩数据
    int
    Get minimum size threshold for compression 获取压缩的最小大小阈值
    byte[]
    decompress(byte[] data)
    Decompress data 解压数据
    Create GZIP compressor with default settings 使用默认设置创建 GZIP 压缩器
    gzip(int threshold)
    Create GZIP compressor with custom threshold 使用自定义阈值创建 GZIP 压缩器
    Create no-op compressor (pass-through) 创建无操作压缩器(直通)
    default boolean
    shouldCompress(int dataSize)
    Check if data should be compressed based on size 根据大小检查数据是否应该压缩
  • Field Details

    • MAX_DECOMPRESSED_SIZE

      static final long MAX_DECOMPRESSED_SIZE
      Maximum decompressed size limit to prevent decompression bombs (100 MB). 最大解压大小限制,防止解压炸弹(100 MB)。
      See Also:
  • Method Details

    • compress

      byte[] compress(byte[] data) throws ValueCompressor.CompressionException
      Compress data 压缩数据
      Parameters:
      data - original data | 原始数据
      Returns:
      compressed data | 压缩后的数据
      Throws:
      ValueCompressor.CompressionException - if compression fails | 压缩失败时抛出
    • decompress

      byte[] decompress(byte[] data) throws ValueCompressor.CompressionException
      Decompress data 解压数据
      Parameters:
      data - compressed data | 压缩的数据
      Returns:
      decompressed data | 解压后的数据
      Throws:
      ValueCompressor.CompressionException - if decompression fails | 解压失败时抛出
    • algorithm

      Get compression algorithm 获取压缩算法
      Returns:
      algorithm | 算法
    • compressionThreshold

      int compressionThreshold()
      Get minimum size threshold for compression 获取压缩的最小大小阈值
      Returns:
      threshold in bytes | 阈值(字节)
    • shouldCompress

      default boolean shouldCompress(int dataSize)
      Check if data should be compressed based on size 根据大小检查数据是否应该压缩
      Parameters:
      dataSize - data size in bytes | 数据大小(字节)
      Returns:
      true if should compress | 如果应该压缩返回 true
    • none

      static ValueCompressor none()
      Create no-op compressor (pass-through) 创建无操作压缩器(直通)
      Returns:
      no-op compressor | 无操作压缩器
    • gzip

      static ValueCompressor gzip()
      Create GZIP compressor with default settings 使用默认设置创建 GZIP 压缩器
      Returns:
      GZIP compressor | GZIP 压缩器
    • gzip

      static ValueCompressor gzip(int threshold)
      Create GZIP compressor with custom threshold 使用自定义阈值创建 GZIP 压缩器
      Parameters:
      threshold - minimum bytes to trigger compression | 触发压缩的最小字节数
      Returns:
      GZIP compressor | GZIP 压缩器
    • builder

      static ValueCompressor.Builder builder()
      Create compressor builder 创建压缩器构建器
      Returns:
      builder | 构建器