You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A grab-bag of missing convenience commands that client libraries call directly. None are load-bearing individually, but together they're a common source of "unknown command" errors during migration.
Missing commands
LPUSHX key element [element ...] — push only if key exists as list
RPUSHX key element [element ...] — push only if key exists as list
Summary
A grab-bag of missing convenience commands that client libraries call directly. None are load-bearing individually, but together they're a common source of "unknown command" errors during migration.
Missing commands
LPUSHX key element [element ...]— push only if key exists as listRPUSHX key element [element ...]— push only if key exists as listLMPOP numkeys key [key ...] LEFT|RIGHT [COUNT count]— multi-key non-blocking popHRANDFIELD key [count [WITHVALUES]]— random hash field samplingSMOVE src dst member— atomic move between setsSINTERCARD numkeys key [key ...] [LIMIT limit]— cardinality of intersection without materializingDesign notes
LPUSHX/RPUSHXare one-line guards on the existing push paths.LMPOPneeds the same multi-key iteration infrastructure that blocking ops will need — worth implementing before feat(commands): blocking list operations (BLPOP/BRPOP/BLMOVE/BLMPOP/BRPOPLPUSH) #56.SMOVEmust be atomic across two set operations on the same shard; cross-shardSMOVErequires the existing cross-shard dispatch plumbing.HRANDFIELDsampling distribution must match Redis exactly for consistency tests.SINTERCARDwithLIMITcan short-circuit iteration — the whole point is avoiding the full materialization.Acceptance criteria
LIMIT/COUNTvariants and the cross-shardSMOVEcase.References