Skip to content

Latest commit

 

History

History
21 lines (19 loc) · 1.48 KB

File metadata and controls

21 lines (19 loc) · 1.48 KB

Redis Labs Realtime-Expiration Redis Module Development Proposal

General:

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.

SOW:

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:

  1. REXPIRE {key} {ttl_ms}
  2. REXPIREAT {key} {timestamp_ms}
  3. RTTL {key}
  4. RUNEXPIRE {key}
  5. RSETEX {key} {value} {ttl_ms}
  6. 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.