Skip to content

Commit a9c4a5a

Browse files
committed
added zstd as compress option
1 parent 873f5a2 commit a9c4a5a

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Cm/Cache/Backend/Redis.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,15 @@ public function __construct($options = array())
309309
}
310310
$this->_compressionLib = 'l4z';
311311
}
312+
else if ( function_exists('zstd_compress')) {
313+
$version = phpversion("zstd");
314+
if (version_compare($version, "0.4.13") < 0)
315+
{
316+
$this->_compressTags = $this->_compressTags > 1 ? true : false;
317+
$this->_compressData = $this->_compressData > 1 ? true : false;
318+
}
319+
$this->_compressionLib = 'zstd';
320+
}
312321
else if ( function_exists('lzf_compress') ) {
313322
$this->_compressionLib = 'lzf';
314323
}
@@ -1171,6 +1180,7 @@ protected function _encodeData($data, $level)
11711180
case 'snappy': $data = snappy_compress($data); break;
11721181
case 'lzf': $data = lzf_compress($data); break;
11731182
case 'l4z': $data = lz4_compress($data, $level); break;
1183+
case 'zstd': $data = zstd_compress($data, $level); break;
11741184
case 'gzip': $data = gzcompress($data, $level); break;
11751185
default: throw new CredisException("Unrecognized 'compression_lib'.");
11761186
}
@@ -1193,6 +1203,7 @@ protected function _decodeData($data)
11931203
case 'sn': return snappy_uncompress(substr($data,5));
11941204
case 'lz': return lzf_decompress(substr($data,5));
11951205
case 'l4': return lz4_uncompress(substr($data,5));
1206+
case 'zs': return zstd_uncompress(substr($data,5));
11961207
case 'gz': case 'zc': return gzuncompress(substr($data,5));
11971208
}
11981209
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Works with any Zend Framework project including all versions of Magento!
4848
<compress_data>1</compress_data> <!-- 0-9 for compression level, recommended: 0 or 1 -->
4949
<compress_tags>1</compress_tags> <!-- 0-9 for compression level, recommended: 0 or 1 -->
5050
<compress_threshold>20480</compress_threshold> <!-- Strings below this size will not be compressed -->
51-
<compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf, lz4 (as l4z) and snappy -->
51+
<compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf, lz4 (as l4z), snappy and zstd -->
5252
<use_lua>0</use_lua> <!-- Set to 1 if Lua scripts should be used for some operations (recommended) -->
5353
<load_from_slave>tcp://redis-slave:6379</load_from_slave> <!-- Perform reads from a different server -->
5454
</backend_options>

0 commit comments

Comments
 (0)