This project will include the design and development of a Redis Module to simplify, improve and extend the expiration mechanism of redis elements for real-time (and other) applications, as defined by Redis Labs and their clients. As this project does not include many unknown-unknown elements Tamar Labs propose a fix-price model. This proposal refers only to the phase one as described in the specification document below. Sub-element expiration will be developed as phase two of this project and will include a reassessment of effort.
The design will be in accordance with the the specification document below. The following is a summation of said document. The API will follow the redis expiration API, denoting Real-Time with R as the prefix. This module will include the commands for the following operations:
- REXPIRE {key} {ttl_ms}
- REXPIREAT {key} {timestamp_ms}
- RTTL {key}
- RUNEXPIRE {key}
- RSETEX {key} {value} {ttl_ms}
- REXECEX {CMD} {key} {ttl_ms} {....} <- run CMD, save result to KEY and set expiration to ttl The RUNEXPIRE command will serve to declare re-expiring or un-expiring a key explicitly.
The new commands will provide expiration notifications using normal keyspace.
The new commands will provide no guarantees of deduplication with normal expiration mechanisms. OPTIONAL: Pending the introduction of command hooks to redis, completely replace the current set of redis expiration commands.