2016-07-04 15 views
0

Wie ändere ich die Speichermethode auf Rails, wenn Sie das Attribut redis-rails verwenden. Ich legte den Cache-Speicher so fest, dass er redis verwendete, und verwendete dann Rails.cache.fetch wie dokumentiert. Es funktioniert vollständig wie erwartet, aber beim Abrufen des Schlüssels ist die Ausgabe kein leicht zu bearbeitendes Format. Mit redis-desktop-manager hier ist die Ausgabe: http://imgur.com/cE1pAy1Wie ändere ich das Rails-Cache-Format?

(keine sensiblen Informationen, zufällig generiert). Gibt es eine Möglichkeit, es als JSON gespeichert zu haben? Mein Endziel ist die Verbindung mit dem Redis-Server über Java und das Aktualisieren von Feldern für bestimmte Benutzer im Redis-Array.

Hier ist, wie ich den Cache verwendet:

Rails.cache.fetch("some_key", expires_in: 1.day) do 
User.all.to_a.each do |user| 
    user.name = "foobar" 
end 

Später aus Java, ich möchte in der Lage sein zu Redis zu verbinden und einige Benutzer von ID oder einem anderen Attribute Namen. Wie kann ich entweder die Redis-Daten deserialisieren ODER sie in JSON speichern, um Attribute einfach analysieren und ändern zu können?

BEARBEITEN Okay, ich habe eine Möglichkeit gefunden, den Marshalling-Code in redis-store zu überschreiben (erforderlich für redis-rails), um YAML zu verwenden, das ich deserialisieren kann. Jetzt ist mein nächstes Problem das: Ist es eine schlechte Verwendung von redis, eine YAML-Datei zu speichern, die ein Array von Benutzern in einem einzigen Schlüssel darstellt, und dann die gesamte yaml-Datei zu aktualisieren (für nur ein oder zwei Inkrement- oder Dekrementänderungen) oft in Java?

Die aktuelle YAML-Datei ist eine Liste von Benutzern und deren Kills und Deathes in einem in Java geschriebenen Spiel. Das Java-Spiel muss häufig einen Schlüssel in der YAML-Datei aktualisieren, dh die gesamte YAML-Datei abrufen, analysieren, einen Wert ändern, zu einem YAML-Format zurückkehren und diesen als Schlüsselwert festlegen. Wie ineffizient ist das genau (sollte ich mir Sorgen machen) und wie kann ich dafür sorgen, dass die Rails es vorziehen, jeden Benutzer bei Bedarf als separaten Schlüssel zu speichern?

Antwort

Verwandte Themen