As simple as Redis is designed to be, the complexity that Redis users face can get very real, very quickly. One of our mantras at ObjectRocket is to stay out of the way of Redis to allow it to perform and provide customers flexible tools to manage their instances. We are proud to announce the release of the Instance Resize feature. We built this feature to allow customers the ability to resize their instance(s) when it is best for them. A customer’s memory needs for their Redis instance(s) is not always constant given their use-case. Whether customers are seeing spikes in traffic or have more permanent Redis size requirements, they need an easy and efficient way to resize their instances based upon their timeline.
How it works
Previously, an ObjectRocket customer had to open a support ticket in order to resize their instance(s). There were migration steps that required coordination between the customer and the ObjectRocket support team. Additionally, the timing of the migration was not always optimal for customers. With the release of Instance Resize, we conduct all of the previous migration steps automatically, based upon the customer’s timeline. When a customer selects the instance re-size option, we provision a new instance based upon the newly requested size. While we automatically copy over the data from the old instance to the new instance, the customer still has access to the old instance. The timeframe to copy over the data is dependent on the size of the database being migrated. Once the data has been copied over, we make the switch from the old instance to the new instance. This switchover is where the customer will experience a few seconds of downtime. No customer changes are required. All of the connection strings and passwords remain the same.
Below is a snapshot of this feature in the ObjectRocket Control Panel where a customer can resize their instance by simply selecting the new size of the instance and clicking the “Use Selected Plan” button. While the dataset is copied in the background, the instance “state” at the top of the page will switch from “Active” to “Resizing”. Once the process is complete, the customer will receive a notification email and the “state” will switch back to “Active”.
If an ObjectRocket customer needs to resize their Redis instance size down, our team still requires a support ticket to be submitted for assistance. This is a situation where our Redis expertise comes into play. A large concern is around not leaving enough headroom in the instance for the size of the dataset, resulting in potential data loss or instance downtime. The ObjectRocket support team is here to ensure this process runs as smoothly as possible.
Before an ObjectRocket customer decides that they need a larger Redis instance, they need to ask the question – am I using my Redis instance efficiently? A common practice for many Redis users is implementing too many keys in their data structure instead of hashes. Refer back to the Using hashes in Redis blog for tips on how to use hashes. Too many keys can result in exacerbating the size of a Redis instance memory size needs. By rethinking how we are using keys v. hashes, a customer may not require a larger sized Redis instance. Another common practice for many Redis users is not taking advantage of expiring keys. Redis has some great tools built in to help manage this. For more on these tools, check out the Redis.io documentation. By expiring keys more efficiently, a customer may remove the need to resize to a larger-sized Redis instance.
One of the key differentiators for ObjectRocket is the level of Redis expertise we’re able to provide customers. As initially stated – as simple as Redis is designed to be, the complexity that Redis users face can get very real, very quickly. Scaling a Redis instance can be very simple conceptually. If not managed correctly, it could cost a Redis user significant time and money. We hope our Instant Resize feature in combination with our Redis expertise, can make scaling a Redis instance simple and efficient.