Redis Expiretime

Redis Expiretime
Las teclas Redis son persistentes hasta que las eliminas manualmente. En algunos casos, es posible que deba almacenar los pares de valor clave temporal en la tienda Redis. Es una buena práctica eliminarlos cuando no sea necesario. Es una tarea tediosa y lenta eliminar las claves manualmente cada vez. Redis tiene la función para establecer un tiempo de vencimiento en una clave determinada cuando la está creando o después de la creación. Llamamos a esto el valor TTL de una clave redis.

Establezca el valor TTL cuando la clave está creando

La siguiente sintaxis se usa para establecer el tiempo de vencimiento para una clave REDIS dada en el momento de la creación:

Establecer temp_age 24 ex 5

La tecla "temp_age" expira después de 5 segundos.

Establezca el valor TTL después de que se cree la clave

Redis le permite crear la clave primero y luego establecer un tiempo de caducidad para la clave utilizando el comando expire de la siguiente manera:

Establecer temp_age 24
Expirar temp_age 5

También es posible especificar una fecha de vencimiento como una marca de tiempo UNIX para una clave REDIS dada utilizando el comando expirante de la siguiente manera:

Experezo TEMP_AGE 1669929041

La marca de tiempo de UNIX especificada se asocia con la siguiente fecha legible humana:

Jue, 01 de diciembre de 2022 21:10:41 GMT

La tecla "Temp_age" expira el 12-12-12-2022 a las 21:10:41.

El comando de cadena

El comando Extentime devuelve la fecha de vencimiento como una marca de tiempo UNIX, que es el número de segundos que se calcula a partir de la fecha de la época de Unix (1970-01-01T00: 00: 00z). Este comando es útil cuando tiene varias claves en la base de datos de Redis con tiempos de caducidad y necesita saber la fecha de caducidad exacta de una clave específica. La siguiente es la sintaxis del comando Extentime:

Experiencia

El comando Extentime es muy rápido debido a su complejidad del tiempo de ejecución O (1). Si hay un tiempo de vencimiento asociado con la clave Redis, el comando de caducidad devuelve el tiempo de vencimiento en segundos como una marca de tiempo de Unix. De lo contrario, el comando devuelve un número negativo -1 o -2:

-1 Respuesta: la clave Redis existe, pero no hay tiempo de vencimiento (TTL) asociado con ella.

-2 Respuesta: la tecla Redis especificada no existe en la base de datos.

Caso de uso:

Supongamos que la compañía ABC necesita mantener el historial de pedidos de repuestos de su automóvil solo para la última semana. Por lo tanto, utilizan una base de datos Redis para almacenar el nombre del cliente como la clave y el tipo de pedido como el valor. Al mismo tiempo, almacenan cada clave con un tiempo de vencimiento de una semana desde la fecha de creación.

John compra un motor de la compañía ABC el 2022-12-02. La compañía necesita agregar este registro a la base de datos Redis es el siguiente:

Establezca customer_john "motor"

Además, la clave "Customer_john" debe expirar después de una semana desde 2022-12-02. Entonces, la fecha de vencimiento es 2022-12-09 a las 12:00 a.m. En este caso, utilizamos el comando expirante para establecer la fecha de vencimiento para esta clave.

El comando expirante acepta una marca de tiempo UNIX en segundos. Necesitamos proporcionar la fecha de vencimiento como una marca de tiempo UNIX de la siguiente manera:

La marca de tiempo UNIX asociada para la fecha de vencimiento (2022-12-09 12:00 am) es 1670524200).

Establezcamos la fecha de vencimiento de la siguiente manera:

Experiencia Customer_John 1670524200

Aquí, agregamos solo un registro de pedidos del cliente a la base de datos. Pero no es el caso cuando se trata de un escenario del mundo real. Puede haber cientos de pedidos de clientes que se procesan por semana. Es difícil realizar un seguimiento de las fechas de vencimiento para todos los registros de pedidos del cliente.

El comando de caducidad es útil en este tipo de escenarios. Si tiene la clave Redis, el comando Extentime lo ayuda a recuperar la fecha de vencimiento asociada en segundos desde la fecha de la época.

Obtenemos la fecha de vencimiento de la clave Customer_John de la siguiente manera:

Customer_John de cadena

Como se esperaba, se devuelve la marca de tiempo Unix. Si convierte este valor de marca de tiempo en un formato legible por humanos, debe dar la fecha exacta que establecemos en el paso anterior.

El comando Extentime se puede usar cuando tiene una gran cantidad de datos en su base de datos Redis y necesita saber sobre las fechas de vencimiento de cualquiera de las claves.

Cuando no hay tiempo de vencimiento para una llave redis

Creemos una clave Redis sin un tiempo de vencimiento (TTL) de la siguiente manera:

Establecer NO_TTL_KEY "No TTL Scenario"

Si ejecutamos el comando Extentime para esta clave, debería devolver el -1. Esto se debe a que el "no_ttl_key" no está asociado con un TTL.

Extentime NO_TTL_KEY

Cuando la clave no existe

Si ejecutamos el comando Extentime especificando una clave que no existe en la base de datos actual de Redis, debería devolver la respuesta -2 de la siguiente manera:

Extentime no_exist_key

Conclusión

Para concluir, el comando Redis Extentime se usa para recuperar la fecha o hora de vencimiento de una clave determinada. Devuelve una marca de tiempo Unix en segundos. Si no hay tiempo de vencimiento asociado con una clave dada, el comando de cadena de cadena devuelve negativo 1. El comando devuelve -2 si la tecla especificada no existe. Lo más importante es que este comando se puede utilizar en aplicaciones de alto rendimiento debido a su rápida ejecución con o (1) complejidad de tiempo.