Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
Redis: ¿Cómo se ordena el resultado de KEYS *?

Tengo una aplicación php redis muy simple que crea claves en ciertos eventos. Todas las claves son solo contadores y tienen un tiempo de caducidad de 24 horas. Básicamente, una ventana móvil de 24 horas para que cada tecla recopile algunas estadísticas.

 if ($redis->exists($key)) { $redis->incr($key); } else { $redis->set($key, '1'); $now = time(); // current timestamp $redis->expireAt($key, $now + 86400); }

Cuando extraigo una descripción general de todas mis claves con $list = $redis->keys("*"); (o en una consola redis-cli con keys * ), sospecharía un orden cronológico por fecha de creación. Sin embargo, este no es el caso. Tampoco están ordenados alfabéticamente, por valor...

Entonces mi pregunta es, ¿cómo se ordena esta lista?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En primer lugar, no use keys * es una función de depuración no diseñada para una producción, puede matar su servidor ... Si necesita enumerar todas las claves en DB de manera segura, use la función SCAN con LIMIT .

De todos modos, los resultados de keys o el scan no se ordenan de ninguna manera, el orden de los resultados está relacionado con la estructura de la memoria interna de la tabla hash de redis.

Acerca de su secuencia de comandos php, puede hacerlo con un solo comando, sin que exists el set expireat simplemente ejecute:

SET key 1 EX 86400 NX

EX 86400 significa que expirará en 86400 (1 día) segundos a partir de ahora

NX significa crear una clave solo si no existe.

Si este comando devuelve (nil) ejecuta la INCR key normal, significa que la clave ya existe. Por cierto, el comando INCR no eliminará la configuración de caducidad.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!