1. An apparatus, comprising: an interface coupled to a memory, wherein the memory includes at least one Redundant Array of Independent Disks (RAID) stripe, wherein the at least one RAID stripe includes a first set of blocks, and a second set of blocks; and a processor configured to: determine an amount of space available in the memory for storing new data; increase a number of blocks in the first set of blocks in response to a determination that the amount of space available in the memory for storing new data is less than a predefined threshold value; calculate first redundancy information for data to be stored in the at least one RAID stripe using a first redundancy scheme; and store the data in the first set of blocks and the redundancy information in the second set of blocks; wherein to increase the number of blocks in the first set of blocks, the processor is further configured to calculate second redundancy information for data stored in at least one block of the first set of blocks using a second redundancy scheme, wherein a storage overhead associated with the second redundancy scheme is less than an overhead associated with the first redundancy scheme.