]> git.saurik.com Git - redis.git/blobdiff - src/migrate.c
Delete keys from the archive when deleting from DB.
[redis.git] / src / migrate.c
index 8cddc502a9110183660ce542c5d7a0d3e9f0ddaf..59d2ed5a18b2ecd9e29fd6a67f7abecc84e0c8ef 100644 (file)
@@ -398,3 +398,27 @@ recover_err:
     sdsfree(sval);
     return NULL;
 }
+
+void purge(robj *key) {
+    if (server.mdb_state == REDIS_MDB_OFF)
+        return;
+
+    int ret;
+
+    MDB_val kval;
+    kval.mv_data = key->ptr;
+    kval.mv_size = sdslen((sds)key->ptr);
+
+    MDB_txn *txn;
+    ret = mdb_txn_begin(env, NULL, 0, &txn);
+    if (ret != 0)
+        return;
+
+    ret = mdb_del(txn, dbi, &kval, NULL);
+    if (ret != 0) {
+        mdb_txn_abort(txn);
+        return;
+    }
+
+    mdb_txn_commit(txn);
+}