@@ -309,6 +309,15 @@ public function __construct($options = array())
309
309
}
310
310
$ this ->_compressionLib = 'l4z ' ;
311
311
}
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
+ }
312
321
else if ( function_exists ('lzf_compress ' ) ) {
313
322
$ this ->_compressionLib = 'lzf ' ;
314
323
}
@@ -1171,6 +1180,7 @@ protected function _encodeData($data, $level)
1171
1180
case 'snappy ' : $ data = snappy_compress ($ data ); break ;
1172
1181
case 'lzf ' : $ data = lzf_compress ($ data ); break ;
1173
1182
case 'l4z ' : $ data = lz4_compress ($ data , $ level ); break ;
1183
+ case 'zstd ' : $ data = zstd_compress ($ data , $ level ); break ;
1174
1184
case 'gzip ' : $ data = gzcompress ($ data , $ level ); break ;
1175
1185
default : throw new CredisException ("Unrecognized 'compression_lib'. " );
1176
1186
}
@@ -1193,6 +1203,7 @@ protected function _decodeData($data)
1193
1203
case 'sn ' : return snappy_uncompress (substr ($ data ,5 ));
1194
1204
case 'lz ' : return lzf_decompress (substr ($ data ,5 ));
1195
1205
case 'l4 ' : return lz4_uncompress (substr ($ data ,5 ));
1206
+ case 'zs ' : return zstd_uncompress (substr ($ data ,5 ));
1196
1207
case 'gz ' : case 'zc ' : return gzuncompress (substr ($ data ,5 ));
1197
1208
}
1198
1209
}
0 commit comments