@@ -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 }
0 commit comments