I’m curious, when configuring and administering Redis, has anyone run into any options or settings that are available but really shouldn’t be used? I know I have run into this with other things where there is a configuration or command that is available but after using it find out that it really shouldn’t be used because it creates other problems, e.g. MySQL where certain operations can corrupt the db. Anyone run into anything like this in Redis?
Let me answer this in 2 steps, because in Redis 6.0 with ACL you have a very nice way to separate users and what they can do on the DB,
If you are using Redis 6.0.x no need to restrict specific command, it will probably better to works with ACL; using ACL you will be able to:
- create specific permission on each db for specific users
- so you can limit all administrative commands to administrators.
If you are using Redis 5.x (but also true for 6.0.x) you can limit the access to some command at the database level (for all connections), you can see the disabling command documentation, for example FLUSH, KEYS.
For the list of command itself that you “want” to disable is really based on your deployment and your administrators/developers.
Note that in Redis Enterprise some commands have been disabled since the logic behind these commands is implemented at the Redis Enterprise Software itself (persistence, cluster management for example), see documentation.