2015-08-05 5 views
0

Je construis une API simple en utilisant Grape, Ruby et Rack (pas de framework). Je veux utiliser redis pour stocker les données avec lesquelles l'API travaille. Jusqu'à présent, j'ai défini une classe Directory et une classe DirectoryAPI en utilisant Grape. La classe Directory comporte des méthodes qui renvoient des données JSON exactement de la même manière que l'API.Comment configurer Redis pour une API utilisant Ruby et Rack?

Je n'ai jamais eu à configurer redis auparavant, donc je ne suis pas sûr de savoir comment le faire. Ce que je cherche à accomplir est:

  • Faites un insert de masse à Redis quand je lance rackup, pour qu'il y ait des données préremplis. Les données pré-remplies proviendraient de l'utilisation de ma classe Directory.

  • Demandez à mes itinéraires GET renvoient un hachage stocké dans Redis

  • Demandez la route POST pour mon API ajouter une entrée à Redis

Comment configurer Redis pour exécuter et remplir quand je exécuter rackup? Devrais-je le faire dans mon fichier config.ru en quelque sorte et définir une nouvelle classe pour redis? Comment pourrais-je faire interagir la classe API avec redis?

Répondre

1

Quand j'utilise redis, je fais la mise en jachère:

Dans mon dossier initializers je crée un fichier redis.rb et crée la connexion:

`Redis.new(:host => "10.0.1.1", :port => 6380, :db => 15)` 

Puis-je attribuer cette conn à une variable globale $redis donc je peux y avoir accès partout.

Ensuite, à vous de décider, vous pouvez organiser votre code comme vous le souhaitez.

Un exemple:

Controller A 
def index 
    MemoryModel.getAll() 
end 

class MemoryModel 

    def getAll() 
    $redis.get("key") 
    end 
end 

Jetez un oeil à redis gem vous pouvez trouver quelques exemples là-dedans, aussi petit bijou connection_pool