0

最大数百万の 6 文字の base36 文字列を保持し、次の動作を行う永続的なキャッシュが必要です。それらはキャッシュからも削除されるため、他のクライアントが同じ文字列を受信することはありません。

現在、永続キャッシュとして MapDB を使用しています (EHCache を使用したいのですが、永続ストレージのライセンスが必要です)。

MapDB は、要素を配置/取得できる Map を提供し、ディスクへの永続化を処理します。

Javaのクラスは順序付けを提供し、メソッドを呼び出して要素を順番に取得/削除するConcurrentSkipListMapこともできるため、私の問題に役立つことに気付きました。pollFirstEntry

ただし、これを MapDB でどのように使用できるかはわかりません。私が概説した行動を達成するのに役立つアドバイスはありますか?

ありがとう

4

1 に答える 1

1

あなたが説明していることは、ほとんどの人がキャッシュと見なすもののようには聞こえません。キャッシュは基本的に共有マップであり、キーが値にマッピングされます。キャッシュに最も人気のあるアイテムを含める必要があるため、読み取り時に削除することはありません (それが目的です)。

あなたが説明しているもの (順序付けられたアイテムのセット、固定された順序でクライアントによって消費される) は、ワーク キューによく似ています。キャッシュ ソリューションを検討するのではなく、RabbitMQ、Kafka、bigqueueなどの永続的なキューを試してください。

于 2016-10-17T21:39:06.033 に答える