Memcached ha limitazioni di lunghezza per le chiavi (250?) E valori (1 MB premuroso), nonché alcune (a mia conoscenza) restrizioni di caratteri non ben definite per le chiavi. Qual è il modo migliore per aggirare quelli secondo te? Io uso il Perl API Cache :: Memcached.Come aggirare i limiti di chiave/valore di memcached?
Quello che faccio è attualmente memorizzare una stringa speciale per il valore della chiave principale se il valore originale era troppo grande ("parti: < numero>") e in tal caso, io memorizzare < numero> parti con chiavi denominate 1+ < chiave principale>, 2+ < chiave principale> ecc. Questo sembra "OK" (ma disordinato) per alcuni casi, non così buono per gli altri e ha il problema intrinseco che alcune parti potrebbero mancare in qualsiasi momento (così lo spazio è sprecato per mantenere gli altri e il tempo è sprecato per leggerli).
Per quanto riguarda le limitazioni chiave, si potrebbe probabilmente implementare l'hashing e memorizzare la chiave intera (per aggirare le collisioni) nel valore, ma non ho ancora avuto bisogno di farlo.
Qualcuno ha escogitato un modo più elegante o addirittura un'API Perl che gestisce in modo trasparente le dimensioni (ei valori chiave) dei dati arbitrari? Qualcuno ha hackerato il server memcached per supportare chiavi/valori arbitrari?
Possa la collisione essere con voi. –
concordato. Un CRC32 ti darà un sacco di collisioni, almeno usare un hash MD5. –