Skip to content

[Regression] Key prefixing not implemented for many commands #1575

@DavidBennettUK

Description

@DavidBennettUK

Describe the bug
Since the refactor of KeyPrefixProcessor to make commands implement PrefixableCommandInterface in #1262, there has been a regression in commands that support key prefixing. For example, prefixing was added to GETDEL in #1306, but now the GETDEL command class does not implement PrefixableCommandInterface, so there is no key prefixing.

All of the commands that were previously baked into KeyPrefixProcessor in 2.4 here should implement PrefixableCommandInterface. From a quick diff, it appears there are quite a few missing:

BFADD
BFEXISTS
BFINFO
BFINSERT
BFLOADCHUNK
BFMADD
BFMEXISTS
BFRESERVE
BFSCANDUMP
BLMOVE
CFADD
CFADDNX
CFCOUNT
CFDEL
CFEXISTS
CFINFO
CFINSERT
CFINSERTNX
CFLOADCHUNK
CFMEXISTS
CFRESERVE
CFSCANDUMP
CMSINCRBY
CMSINFO
CMSINITBYDIM
CMSINITBYPROB
CMSQUERY
EVALSHA
EXPIRETIME
FTAGGREGATE
FTALTER
FTCREATE
FTCURSOR DEL
FTCURSOR READ
FTDROPINDEX
FTEXPLAIN
FTINFO
FTPROFILE
FTSEARCH
FTSPELLCHECK
FTSYNDUMP
FTSYNUPDATE
FTTAGVALS
GEORADIUSBYMEMBER
GEOSEARCH
GETDEL
JSONARRAPPEND
JSONARRINDEX
JSONARRINSERT
JSONARRLEN
JSONARRPOP
JSONARRTRIM
JSONCLEAR
JSONDEBUG MEMORY
JSONDEL
JSONFORGET
JSONGET
JSONMGET
JSONNUMINCRBY
JSONOBJKEYS
JSONOBJLEN
JSONRESP
JSONSET
JSONSTRAPPEND
JSONSTRLEN
JSONTOGGLE
JSONTYPE
LMOVE
MSETNX
SMISMEMBER
TDIGESTADD
TDIGESTBYRANK
TDIGESTBYREVRANK
TDIGESTCDF
TDIGESTCREATE
TDIGESTINFO
TDIGESTMAX
TDIGESTMIN
TDIGESTQUANTILE
TDIGESTRANK
TDIGESTRESET
TDIGESTREVRANK
TDIGESTTRIMMED_MEAN
TOPKADD
TOPKINCRBY
TOPKINFO
TOPKLIST
TOPKQUERY
TOPKRESERVE
TSADD
TSALTER
TSCREATE
TSDECRBY
TSDEL
TSGET
TSINCRBY
TSINFO
TSMGET
TSMRANGE
TSMREVRANGE
TSQUERYINDEX
TSRANGE
TSREVRANGE
XREVRANGE
ZINTERSTORE
ZMSCORE
ZPOPMAX
ZPOPMIN
ZRANGEBYLEX
ZRANGEBYSCORE
ZREVRANGE
ZREVRANGEBYLEX
ZREVRANGEBYSCORE

To Reproduce
Steps to reproduce the behavior:

  1. Use any of the above Redis commands with the client configured to use key prefixing
  2. See that the key is not prefixed

Expected behavior
When using any of the above commands, the keys should be prefixed.

Versions (please complete the following information):

  • Predis: 3.0.0-3.0.1
  • PHP N/A
  • Redis Server N/A
  • OS N/A

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions