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 ClassesModifier and TypeInterfaceDescriptionstatic classBuilder for ValueCompressor ValueCompressor 构建器static classException thrown when compression/decompression fails 压缩/解压失败时抛出的异常static classGZIP compressor implementation GZIP 压缩器实现static classNo-op compressor that passes data through unchanged 无操作压缩器,数据直接通过不变 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longMaximum decompressed size limit to prevent decompression bombs (100 MB). -
Method Summary
Modifier and TypeMethodDescriptionGet compression algorithm 获取压缩算法static ValueCompressor.Builderbuilder()Create compressor builder 创建压缩器构建器byte[]compress(byte[] data) Compress data 压缩数据intGet minimum size threshold for compression 获取压缩的最小大小阈值byte[]decompress(byte[] data) Decompress data 解压数据static ValueCompressorgzip()Create GZIP compressor with default settings 使用默认设置创建 GZIP 压缩器static ValueCompressorgzip(int threshold) Create GZIP compressor with custom threshold 使用自定义阈值创建 GZIP 压缩器static ValueCompressornone()Create no-op compressor (pass-through) 创建无操作压缩器(直通)default booleanshouldCompress(int dataSize) Check if data should be compressed based on size 根据大小检查数据是否应该压缩
-
Field Details
-
MAX_DECOMPRESSED_SIZE
static final long MAX_DECOMPRESSED_SIZEMaximum decompressed size limit to prevent decompression bombs (100 MB). 最大解压大小限制,防止解压炸弹(100 MB)。- See Also:
-
-
Method Details
-
compress
Compress data 压缩数据- Parameters:
data- original data | 原始数据- Returns:
- compressed data | 压缩后的数据
- Throws:
ValueCompressor.CompressionException- if compression fails | 压缩失败时抛出
-
decompress
Decompress data 解压数据- Parameters:
data- compressed data | 压缩的数据- Returns:
- decompressed data | 解压后的数据
- Throws:
ValueCompressor.CompressionException- if decompression fails | 解压失败时抛出
-
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
Create no-op compressor (pass-through) 创建无操作压缩器(直通)- Returns:
- no-op compressor | 无操作压缩器
-
gzip
Create GZIP compressor with default settings 使用默认设置创建 GZIP 压缩器- Returns:
- GZIP compressor | GZIP 压缩器
-
gzip
Create GZIP compressor with custom threshold 使用自定义阈值创建 GZIP 压缩器- Parameters:
threshold- minimum bytes to trigger compression | 触发压缩的最小字节数- Returns:
- GZIP compressor | GZIP 压缩器
-
builder
-