1

我如何告诉 RocksDB 迭代器寻找直到最后一个匹配的前缀?

在 Clojure 中使用 RocksDB Java API:

(import '(org.rocksdb RocksDB Options ReadOptions RocksIterator Slice))
(let [opts (-> (ReadOptions.)
               (.setPrefixSameAsStart true)
               (.setTotalOrderSeek true))
      iter (.newIterator db)]
  (.seek iter (.getBytes ("some-prefix:"))
  (.key iter))
=> "not-matching-prefix"

我是否必须手动检查下一个键是否与前缀匹配?这似乎不是最理想的,因为我必须输入整个密钥来检查它,而 RocksDB 可能会提前退出。

4

1 回答 1

4

是的,你可以为 RocksDB 提供优化它的上限——通过使用setIterateUpperBoundin ReadOptions

于 2020-03-07T16:19:12.603 回答