Skip to content

Built-in Filter Rules

RedisShake provides various built-in filter rules that users can choose from according to their needs.

Filtering Keys

RedisShake supports filtering by key name, key name prefixes, and suffixes. You can set the following options in the configuration file, for example:

toml
[filter]
allow_keys = ["user:1001", "product:2001"] # allowed key names  
allow_key_prefix = ["user:", "product:"] # allowed key name prefixes
allow_key_suffix = [":active", ":valid"] # allowed key name suffixes
allow_key_regex = [":\\d{11}:"] # allowed key name regex, 11-digit mobile phone number
block_keys = ["temp:1001", "cache:2001"] # blocked key names
block_key_prefix = ["temp:", "cache:"] # blocked key name prefixes
block_key_suffix = [":tmp", ":old"] # blocked key name suffixes
block_key_regex = [":test:\\d{11}:"] # blocked key name regex, 11-digit mobile phone number with "test" prefix

If these options are not set, all keys are allowed by default.

Filtering Databases

You can specify allowed or blocked database numbers, for example:

toml
[filter]
allow_db = [0, 1, 2]
block_db = [3, 4, 5]

If these options are not set, all databases are allowed by default.

Filtering Commands

RedisShake allows you to filter specific Redis commands, for example:

toml
[filter]
allow_command = ["GET", "SET"]
block_command = ["DEL", "FLUSHDB"]

Filtering Command Groups

You can also filter by command groups. Available command groups include: SERVER, STRING, CLUSTER, CONNECTION, BITMAP, LIST, SORTED_SET, GENERIC, TRANSACTIONS, SCRIPTING, TAIRHASH, TAIRSTRING, TAIRZSET, GEO, HASH, HYPERLOGLOG, PUBSUB, SET, SENTINEL, STREAM For example:

toml
[filter]
allow_command_group = ["STRING", "HASH"]
block_command_group = ["SCRIPTING", "PUBSUB"]

Released under the MIT License.