1

spymemcached には圧縮機能が組み込まれています。Jedis は Redis の優先 Java クライアントですが、組み込みの圧縮 API はありますか?

API が見つかりませんでした。Redis の他の代替圧縮技術はありますか?

4

1 に答える 1

3

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 を使用することもできます。これにより、クリーンで高速になります。

于 2013-10-17T10:03:22.720 に答える