Sprawdzenie używanej pamięci oraz ilości kluczy #
# redis-cli info memory | grep human | grep used
used_memory_human:2.76G
used_memory_rss_human:2.81G
used_memory_peak_human:2.76G
used_memory_lua_human:41.00K
used_memory_scripts_human:0B
# redis-cli info | grep -A1 '# Keyspace'
# Keyspace
db0:keys=21379,expires=10450,avg_ttl=3600
Wyświetlenie kluczy bez TTL #
UWAGA!!! Przy dużych bazach danych najlepiej unikać wyświetlania kluczy przy pomocy redis-cli keys \*.
Zamiast tego lepiej użyć redis-cli --scan który nie blokuje zasobów i wyświetla klucze małymi grupami.
Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is executed against large databases.
Klucze bez czasu wygasania mają ustawioną wartość TTL na -1
Przykład przy użyciu basha
redis-cli --scan | while read LINE ; do TTL=$(redis-cli ttl "$LINE"); if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done;
Przykład z użyciem LUA
https://stackoverflow.com/questions/9817951/finding-non-expiring-keys-in-redis/78269330#78269330
Skasowanie nie wygasających kluczy #
Analogicznie jak wyżej.
redis-cli --scan | while read LINE ; do TTL=$(redis-cli ttl "$LINE"); if [ $TTL -eq -1 ]; then redis-cli del "$LINE"; fi; done;
Ustawienie kluczom wartości TTL #
redis-cli --scan | while read LINE ; do TTL=$(redis-cli ttl "$LINE"); if [ $TTL -eq -1 ]; then redis-cli expire "$LINE" 3600; fi; done;