2012-11-02 12 views

risposta

2

No, non è possibile controllare singolarmente ciascun database. Questi "database" sono solo per il partizionamento logico dei tuoi dati.

Quello che puoi fare (dipende dalle tue esigenze specifiche e dalla configurazione) sta facendo girare più istanze di redis, ognuna esegue un compito diverso e ognuna ha il proprio file redis.conf con un limite di memoria. Lo spazio su disco non può essere limitato, almeno non in livello Redis.

Nota a margine: Ricordare che il numero di 16 database non è hardcoded: è possibile impostarlo su redis.conf.

+0

Questa è un'altra opzione, ma io non sono sicuro di quanto sopra la testa in consumo di memoria per ogni istanza. – user209377

+0

Ma questa è l'opzione –

4

Vedi redis-rdb-tools

è possibile ottenere un utilizzo della memoria da parte del database approssimativa, dovrebbe essere entro il 10% della realtà.

+0

Lo proverò, ma suppongo che dicendo "entro il 10% della realtà", stai dicendo il 10% in più di quello che riporta il tuo programma, giusto? Ottenere una lunghezza serializzata per ogni chiave usando l'oggetto di debug come [questa domanda] (http://stackoverflow.com/questions/7638542/redis-show-database-size-size-for-keys) suggerisce, sarà un migliore limite inferiore ? Ho bisogno di controllare. – user209377

+0

Per oggetti piccoli, la lunghezza serializzata è accurata. Ma per oggetti più grandi, è orribilmente scorretto. Redis-rdb-tools reverse engineers Redis 'strutture dei dati per scoprire la memoria utilizzata. Vedi i commenti in https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/rdbtools/memprofiler.py per saperne di più –

0

L'ho fatto chiamando dump su tutte le chiavi in ​​un DB Redis e misurando il numero totale di byte utilizzati. Questo rallenterà il tuo server e richiederà un po 'di tempo. Sembra che la dimensione dei ritorni dump sia inferiore di circa 4 volte rispetto all'utilizzo effettivo della memoria. Questi numeri ti daranno un'idea di quale db sta usando il maggior spazio.

Ecco il mio codice: https://gist.github.com/mathieulongtin/fa2efceb7b546cbb6626ee899e2cfa0b