BITOP command in Redis is used to perform bitwise operations on multiple keys (or Redis strings) and store the result in a destination key. It supports standard logical operations (AND, OR, XOR, NOT) and advanced operations (DIFF, DIFF1, ANDOR, ONE) for complex bit manipulation.
Arguments
Specifies the type of bitwise operation to perform:Standard Operations:
and: Bitwise ANDor: Bitwise ORxor: Bitwise XORnot: Bitwise NOT (only accepts one source key)
diff: A bit is set only if it’s set in all source bitmapsdiff1: A bit is set if it’s set in the first key but not in any of the other keysandor: A bit is set if it’s set in X and also in one or more of Y1, Y2, …one: A bit is set if it’s set in exactly one source key
The key to store the result of the operation in.
One or more keys to perform the operation on.
Response
The size of the string stored in the destination key.
Advanced Operations Details (Redis 8.2+)
DIFF
A bit in the destination is set if it is set in all source bitmaps. This is equivalent to the intersection of all source bitmaps. Use Cases:- Finding common features across multiple datasets
- Identifying users present in all segments
- Intersection of multiple filters
DIFF1
A bit in the destination is set if it is set in the first key but not in any of the other keys. This finds bits unique to the first bitmap. Use Cases:- Finding exclusive features
- Identifying users in one segment but not in others
- Exclusion filtering
ANDOR
A bit in the destination is set if it is set in X and also in one or more of Y1, Y2, …. This implements “X AND (Y1 OR Y2 OR …)” logic. Use Cases:- Required condition with optional alternatives
- Users with a required attribute and at least one optional attribute
- Complex filtering with mandatory and optional criteria
ONE
A bit in the destination is set if it is set in exactly one of the source keys. This finds bits that are unique to a single source. Use Cases:- Finding unique occurrences
- Identifying exclusive memberships
- Detecting singular conditions across multiple sets
The advanced operations (DIFF, DIFF1, ANDOR, ONE) are available in Redis 8.2.0 and later.