• A
    BITFIELD command initial implementation. · 70af626d
    antirez 提交于
    The new bitfield command is an extension to the Redis bit operations,
    where not just single bit operations are performed, but the array of
    bits composing a string, can be addressed at random, not aligned
    offsets, with any width unsigned and signed integers like u8, s5, u10
    (up to 64 bit signed integers and 63 bit unsigned integers).
    
    The BITFIELD command supports subcommands that can SET, GET, or INCRBY
    those arbitrary bit counters, with multiple overflow semantics.
    
    Trivial and credits:
    
    A similar command was imagined a few times in the past, but for
    some reason looked a bit far fetched or not well specified.
    Finally the command was proposed again in a clear form by
    Yoav Steinberg from Redis Labs, that proposed a set of commands on
    arbitrary sized integers stored at bit offsets.
    
    Starting from this proposal I wrote an initial specification of a single
    command with sub-commands similar to what Yoav envisioned, using short
    names for types definitions, and adding control on the overflow.
    
    This commit is the resulting implementation.
    
    Examples:
    
        BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10
    70af626d
server.c 159.3 KB