1

キーを上書きしない良い戦略は何ですか?

同じキーでPut操作を 2 回実行するとします。現在、エラーは発生しませんが、古い値を上書きします。

古い価値観を維持したい。

1 つのオプションは、上書きか挿入かを確認するためだけに、 Putごとに追加の読み取りを行うことです。ただし、この場合、最初の要素については、データベースのサイズも確認する必要があります。私の str は増分文字列であるため、同じコードの次の反復では同じキーが異なる str になります。

leveldb_t *db;
leveldb_options_t *options;
leveldb_readoptions_t *roptions;
leveldb_writeoptions_t *woptions;
size_t read_len;
char *err = NULL;

/* OPEN */

options = leveldb_options_create();
db = leveldb_open(options, "testdb", &err);

if (err != NULL)
    return;
leveldb_free(err);
err = NULL;

/* WRITE */

woptions = leveldb_writeoptions_create();
leveldb_writeoptions_set_sync(woptions, 1);
leveldb_put(db, woptions, "Key", 3,  *str, 64 , &err);

if (err != NULL)        
    return(1);

leveldb_free(err);
err = NULL;
4

3 に答える 3

0

ミリ秒のタイムスタンプと 64 ビットの乱数をキーに追加できますか? ユニークであることはほぼ間違いありません。

于 2013-12-08T22:42:04.750 に答える