Warum gibt es in memcached eine hardcoded chunk limit (.5 meg nach der Komprimierung)? Hat irgendjemand sie neu kompiliert? Ich weiß, ich sollte nicht so große Brocken herumschicken, aber diese extra schweren Brocken passieren für mich von Zeit zu Zeit und richten Chaos an.Memcached chunk limit
Antwort
Diese Frage, die bei den official FAQ
What are some limits in memcached I might hit? (Wayback Machine)
Zitat sein: Sie werden wahrscheinlich mit memcache sind die Schlüssel und Artikel Größenbeschränkungen siehe
Die einfachen Grenzen. Schlüssel sind auf 250 Zeichen beschränkt. Die gespeicherten Daten darf nicht länger als 1 Megabyte groß, denn das ist die größte typische Plattengröße ist „
Die FAQ wurde nun überarbeitet und es gibt jetzt zwei getrennte Fragen dieser Abdeckung.
What is the maxiumum key length? (250 bytes)
Die maximale Größe eines Schlüssels beträgt 250 Zeichen.Beachten Sie, dass dieser Wert weniger ist, wenn Sie Client- "Präfixe" oder ähnliche Funktionen verwenden, da das Präfix auf der Vorderseite des ori angeheftet ist Schlüsselloch. Kürzere Schlüssel sind im Allgemeinen besser, da sie Speicher sparen und weniger Bandbreite verwenden.
Why are items limited to 1 megabyte in size?
Ahh, das ist eine beliebte Frage!
Kurze Antwort: Wegen der Funktionsweise des Algorithmus des Speicherzuordners.
Lange Antwort: Memcached Speicher-Engine (die steckbar/in der Zukunft ... eingestellt sein wird), verwendet eine Platten-Ansatz zum Speicher Management. Der Speicher wird in unterschiedlich große Blöcke aufgeteilt, beginnend bei einer minimalen Anzahl und aufsteigend durch einen Faktor bis zum maximal möglichen Wert .
Sagen der minimale Wert 400 Byte ist, und der Maximalwert ist 1 Megabyte und die faktorielle ist 1,20:
Bramme 1-400 Bytes Bramme 2-480 Bytes Bramme 3-576 Bytes etc ...
Je größer die Platte ist, desto größer ist der Abstand zwischen der Platte und der vorherigen Platte . Je größer der Maximalwert ist, desto weniger effizient ist der Speicher. Memcached muss auch einige Speicherplätze für jeder vorhandenen Platte vorbelegen, so dass die Einstellung einer kleineren Fakultät mit einem größeren Wert von noch mehr Aufwand erfordert.
Es anderen Grund ist, warum Sie würden das nicht tun wollen ... Wenn wir sprechen über eine Web-Seite sind und Sie versuchen, speichern/Lastwert , dass große, sind Sie wahrscheinlich zu tun etwas stimmt nicht.Bei dieser Größe dauert es eine merkliche Menge Zeit, um die Datenstruktur in den Speicher zu laden und zu entpacken, und Ihre Site wird wahrscheinlich nicht sehr gut funktionieren.
Wenn Sie wirklich als 1MB wollen Elemente speichern, größer, können Sie mit einem bearbeiteten
slabs.c:POWER_BLOCK
Wert Memcached neu kompilieren oder die ineffiziente malloc/free-Backend verwenden. Andere Vorschläge umfassen eine Datenbank, MogileFS, etc.
- 1. Wie ein int [] Chunk von Chunk
- 2. Python dekomprimieren gzip chunk-by-chunk
- 3. memcached Überwachung
- 4. memcached Speicherverbrauch
- 5. PHP Array Chunk: Echo etwas anderes für den ersten Chunk
- 6. Webpack maximale Chunk Größe
- 7. Lua erfordern Chunk-Umgebung
- 8. R Sweave chunk Optionen
- 9. Wie HTML-Chunk rendern?
- 10. Chunk Ember Model Array
- 11. Chunk Rendering in Metall
- 12. Webpack Chunk Lade Fortschritt
- 13. Doctrine Result Caching mit Memcached
- 14. Anzahl der Memcached-Buckets in CouchBase begrenzen?
- 15. Memcached seltsames Problem!
- 16. Wie memcached von codeigniter
- 17. MemCached-Client mit Delphi
- 18. spymemcached (Java Memcached Client)
- 19. Mehrere Caches in Memcached
- 20. memcached Caches Anfrage?
- 21. Ansätze für Memcached-Sitzungen
- 22. Sonderbare Memcached Problem
- 23. Lua memcached binäres Protokoll
- 24. pecl memcached unter Windows
- 25. memcached Authentifizierungs-Remoteverbindungen
- 26. Wie SQLAlchemy Memcached verwenden?
- 27. Bilder in Memcached zwischenspeichern
- 28. ocaml sdl Chunk Garbage Collection
- 29. Chunk-Partitionierung IEnumerable in Parallel.Foreach
- 30. Minimiere nur einen Webpack Chunk