What maps to what: migrate from Aerospike to KiviDB
What maps to what. Migrate to KiviDB: Move from Redis, Valkey, ElastiCache, Redis Cloud, Aiven, Aerospike, Hazelcast and more: getting the data out, loading i
| Aerospike | KiviDB | Notes |
|---|---|---|
| Namespace | A key prefix, or a separate database | KiviDB has numbered databases (SELECT) on a self-hosted server, and one per database on KiviDB Cloud. A prefix is the usual choice. |
| Set | A key prefix | <namespace>:<set>:<key> |
| Record | One key: a hash or a JSON document | See Choosing a data model. |
| User key (string, integer, bytes) | The last part of the key name | Redis key names are binary-safe, so bytes keys work. |
| Digest (20-byte RIPEMD-160 of set and key) | No equivalent | KiviDB finds a key by its name. Records stored without their key can only be named by digest; see Gotchas. |
| Bin | A hash field, or a JSON property | |
| Generation | No equivalent; a version field you keep yourself | Check-and-set becomes WATCH/MULTI/EXEC. |
| TTL, void time | EXPIRE, EXPIREAT, TTL | Different rule on update: see below. |
| Integer, float, string, bytes, boolean bins | Hash field values, or JSON numbers, strings and booleans | |
| List and map bins (CDTs) | JSON arrays and objects | JSON.ARRAPPEND, JSON.SET on a path, JSON.NUMINCRBY replace most list and map operations. |
| GeoJSON bin | A JSON property, plus a geo sorted set (GEOADD) for points | GEOSEARCH replaces geo queries. Search indexes do not take GEO fields. |
| HyperLogLog bin | PFADD/PFCOUNT | The registers cannot be carried over. Rebuild them. |
| Secondary index (integer, string, blob, geo; list, map keys, map values) | FT.CREATE on hashes or JSON | NUMERIC and TAG fields; $.list[*] for list elements. No geo fields. |
| Query by secondary index | FT.SEARCH, FT.AGGREGATE | |
| Expressions and filters | Search query syntax, or the application | |
operate() (several operations on one record, atomically) | MULTI/EXEC, or one JSON command | |
| Record UDFs and stream UDFs (Lua) | Application code, MULTI/EXEC; FT.AGGREGATE for aggregations | Aerospike's Lua API does not carry over. KiviDB runs Redis-style Lua (EVAL) only in the lua and full builds. |
| Batch reads and writes | Pipelines, JSON.MGET, HMGET | |
| Scans and queries without a filter | SCAN, or a search index | |
| Multi-record transactions (Enterprise) | MULTI/EXEC on keys of one server, or one shard of a sharded database | |
| Strong consistency mode (Enterprise) | No equivalent | KiviDB replicas follow the primary asynchronously. |
| Durable deletes (Enterprise) | Not needed | A deleted key does not come back after a restart. |
| XDR (Enterprise) | KiviDB replicas; KiviDB Cloud Pro | |
| Storage engines: memory, device (SSD), PMem | In memory, persisted to an append-only file and snapshots | KiviDB holds the whole dataset in RAM. Size for that. |
| Default port 3000 | Default port 6380 | KiviDB Cloud: 6379, or 6380 with TLS. |