spymemcached には圧縮機能が組み込まれています。Jedis は Redis の優先 Java クライアントですが、組み込みの圧縮 API はありますか?
API が見つかりませんでした。Redis の他の代替圧縮技術はありますか?
JavaはUTF-16を使用し、redisはC-char 8ビットエンコーディングを使用するため、Jedisは実際に文字列値に対していくつかの操作を行います。すべてが正しいことを保証する SafeEncoder という名前のクラスがあります。
データを圧縮する場合、2 つのオプションがあります。ziplist や intset などの redis の構成を編集するか、選択したアルゴリズムを使用して手動で値を圧縮できます。
たとえば、私は Java で kryo を使用しました。これは、オブジェクトからバイト配列を取得し、deflate を使用してそれを圧縮し、それを base 64 文字列に変換して永続化します。オブジェクトを元に戻すには、base 64 文字列を取得し、バイト配列を取得して、それをインフレートし、kryo を使用して逆シリアル化します。そして、それは行われます:)
編集
Base 64 操作をスキップして、BinaryJedis.java に実装されている bytearray 署名で Jedis を使用することもできます。これにより、クリーンで高速になります。