2012-03-22 14 views
20

tuşları olmayan süresi dolan Bulma, info komut aşağıdaki bana gösteriyor:benim kurulumda REDIS

[keys] => 1128 
[expires] => 1125 

Ben bir son kullanma tarihi olmayan bu 3 tuşları bulmak istiyorum. Dokümanları hiç boşuna kontrol ettim. Herhangi bir fikir?

cevap

45

Artık bulamadığım bir siteden değiştirildi. durumda biri ise

redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done; 
+7

TTL, hiçbir son kullanma anahtarı ('3600' yerine) için -1'dir. – Niloct

+1

Mükemmel bir nokta, bunu işaretlediğiniz için teşekkürler. Cevabı düzenledik ve yorumunuzu geri aldık. –

+0

Uzak redis ana bilgisayarda bunu denediğimde bir hata alıyorum. Uzak ana bilgisayara bağlanıp sonra çalıştırdığım komuttan: 'keys” * "| LINE okurken; TTL = 'redis-cli ttl $ LINE'; eğer [$ TTL -eq-1]; daha sonra "$ LINE" echo; fi; done; 'ama bir" geçersiz argümanlar "hatası alıyorum – emersonthis

1

kötü argümanlar veya argümanlar hata, $ HATTI etrafında koymak çift tırnak yanlış sayıda oluyor.

Yani, anahtarında boşluk olduğunda bu olur

redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done; 

olurdu.

+0

Bu, mevcut cevap üzerinde bir iyileştirme (hata düzeltme) ve bu cevabın bir düzenlemesi olmalıdır. – AndrewF