Skip to content
Search ffkv docs

Search the complete handbook, locally.

    Data types

    ffkv’s current taxonomy contains 19 families, counting bitmaps and bitfields separately even though both operate on string bytes. Native FQ.* queues are an ffkv extension beyond that catalog. Search is a separate indexing capability, not an extra family.

    FamilyUse it forResult model
    StringsBytes, counters, expiring valuesExact bytes/integer arithmetic
    ListsOrdered payloads and remove-on-pop queuesExact order
    SetsMembership and algebraExact unique members
    HashesField/value records and field TTLExact fields
    Sorted setsLeaderboards, ordered schedulesExact member/score index
    BitmapsDense boolean flagsExact addressed bits
    BitfieldsPacked fixed-width integersExact within chosen overflow policy
    GeospatialPoint proximity and regionsEncoded coordinates and computed distance
    HyperLogLogUnique cardinality with bounded spaceEstimate, no member enumeration
    StreamsAppend history and consumer groupsOrdered entries/pending ownership
    JSONPath-addressable document treesExact document operations
    ArraysSparse unsigned-index byte stringsExact slots, holes, and cursor
    Time seriesTimestamped samples and aggregationSamples with floating-point aggregates
    Vector setsEmbedding similarityApproximate HNSW search; explicit exhaustive mode
    Bloom filtersCompact membership prefiltersPossible false positives
    Cuckoo filtersFingerprint membership/counting/deletionProbabilistic membership/counts
    Count-min sketchFrequency estimatesCollision-biased estimates
    Top-KHeavy hittersApproximate ranked candidates
    t-digestQuantiles/CDF over measurementsApproximate distribution

    Prefer an exact set/hash/counter when an incorrect answer changes authorization, money, or irreversible work. Probabilistic structures are useful for ranking, telemetry, and prefiltering with an authoritative fallback; they are not interchangeable with exact collections.

    Examples use target/release/ffkv-cli -p 6382 against the quickstart instance. Use a fresh dataset; commands mutate namespaced example keys. A command on an incompatible existing type generally returns WRONGTYPE; this is different from a missing key. Some families share physical representations: bitmaps/bitfields/HyperLogLog use strings, and geo uses sorted sets. Avoid unrelated commands that corrupt their encoded meaning.

    All nineteen families participate in key TTLs, WATCH, ACLs, WAL recovery, checkpoints, and backups in both storage profiles. No data directory means no restart durability. Hybrid offloads only large list and native-job bodies: other families stay in RAM. Request/reply limits apply independently of family limits. See persistence, limits, and compatibility.

    A SCAN-family cursor is opaque and not a snapshot; COUNT is a hint. ARSCAN is a different index/value range API. Prefer bounded reads to whole-collection commands for large data.

    For workflows rather than individual types, see list queues, native leased jobs, transactions, and search indexes.