It seems that using Bull 3.21.1 as a work queue with default configuration will cause Redis to retain keys indefinitely under successful operation, eventually exhausting memory in Redis and causing a crash. Here is an example experience, described. I had the same experience. Here's another, in which it is explained that although the default behavior of Bull cannot be memory-leak-free without causing breaking changes for existing users, it could be documented better that the default behavior will retain redis keys for completed jobs indefinitely, and what the configuration is to obtain operation without leaking memory in Redis. Bull's documentation at the writing of this question still contains no mention of this behavior, configuration point, nor solution.
Having had a production (or, luckier, pre-production) crash due to the undocumented default behavior of Bull to retain redis keys of completed jobs forever, how do I recover?