The wrong data type for the job
When we learn about a new feature of a tool, we often unconsciously try to apply it to our current set of problems. Many times, there is nothing wrong with this, but that's not always the case with Redis.
At Yipit, we used to store all deals that were going to be sent to users in a Redis Set. Although the solution worked, developers thought it was memory-inefficient because the Yipit user base was large. To rectify this issue, some of the developers thought that changing the Set implementation to a Bitmap implementation would make the solution memory-efficient. In other contexts, Bitmaps performed so well that developers thought they were the answer to everything—this turned out to be untrue.
No benchmark tests were performed based on the wrong assumption that Bitmaps would always be more memory-efficient than Sets.
The Bitmap implementation sounded logical and was deployed to production. The DevOps engineers received alerts and noticed that the Redis memory...