What maps to what: migrate from Hazelcast 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

HazelcastKiviDBNotes
IMap<K, V> of objectsOne hash per entry (HSET customer:42 name Ana age 31)Or one JSON document per entry (JSON.SET) for nested objects.
IMap<K, V> of strings or numbersOne string per entry (SET stock:7 21)
IMap TTL (put(k, v, ttl, unit), time-to-live-seconds)EXPIRE / PEXPIREAT on the keyPer key. A hash field can have its own TTL too (HEXPIRE).
IMap max-idle (max-idle-seconds)No direct equivalentSet a TTL and refresh it on read with GETEX key EX <seconds> (strings) or EXPIRE (hashes).
IMap eviction (eviction-policy LRU/LFU, max-size-policy)maxmemory with maxmemory-policy allkeys-lru or allkeys-lfuOne limit for the whole server, not per map.
IMap entry listener (added, updated, removed, evicted, expired)Keyspace notifications (notify-keyspace-events) over pub/subAt-most-once: a subscriber that is disconnected misses events. Self-hosted only for now: KiviDB Cloud cannot turn them on yet.
IMap entry processorMULTI/EXEC, WATCH, or a Lua script in a lua buildRuns on the server, but there is no Java code on the server.
IMap predicates, SqlPredicate, SQL SELECTSearch: FT.CREATE an index over the hashes or JSON, then FT.SEARCH / FT.AGGREGATEBuilt in. No joins.
IMap indexes (addIndex, HASH or SORTED)Fields in an FT.CREATE schema (TAG, NUMERIC ... SORTABLE, TEXT)
Near cacheClient-side caching with CLIENT TRACKINGSee Near cache: check your client.
MapStore / MapLoader (read-through, write-through)No equivalentDo it in the application: read the database on a miss, write both.
MultiMapOne set per key (SADD)Or a list (RPUSH) if the MultiMap keeps duplicates (value-collection-type: LIST).
ReplicatedMapOne hash (HSET config key value)Every read goes to the server; there is no copy in each member.
IQueueList: RPUSH to offer, LPOP / BLPOP to poll or takeBLMOVE to a processing list for at-least-once hand-off.
ISetSet (SADD, SISMEMBER)
IListList (RPUSH, LRANGE, LINDEX)
RingbufferStream (XADD ... MAXLEN ~ n, XRANGE, XREAD)Readers keep their own position, as with a ringbuffer sequence.
ITopicPub/sub (PUBLISH, SUBSCRIBE)Fire and forget, as ITopic is.
ReliableTopicStream, with consumer groups (XREADGROUP, XACK) for at-least-once
FencedLock (CP subsystem)SET lock:<name> <token> NX PX <ms>, released with DELEX ... IFEQ <token>Not the same guarantees: see Locks.
IAtomicLong (CP subsystem)INCR, INCRBY, DECR, SET ... IFEQ for compare-and-set
PNCounterINCR / INCRBY
FlakeIdGeneratorINCR on a sequence key, or keep generating IDs in the application
CardinalityEstimatorHyperLogLog (PFADD, PFCOUNT)Estimator state can't be copied; start counting again.
JCache (javax.cache)A Redis client's cache API, or Spring Cache over Redis
Compact, Portable, IdentifiedDataSerializable, Java SerializableYour choice of encoding: hash fields, JSON, or bytesSee Serialization.
Jet pipelines, IExecutorService, IScheduledExecutorService, ISemaphore, ICountDownLatchNo equivalentRun that compute in your own services.
Cluster membership, partition backupsKiviDB replicas, cluster mode, or KiviDB Cloud's Pro tier