Comment ajouter une liste générique à Redis via StackExchange.Redis?
Par exemple, si j'ai un modèle de la Clientèle
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address1 { get; set; }
public string City { get; set; }
public string State { get; set; }
}
Exemple:
var customers = new List<Customer>();
Comment j'ai ajouté une Liste de Clients? Comment puis-je faire?
using (var redis = ConnectionMultiplexer.Connect(this.redisServer))
{
var db = redis.GetDatabase();
db.SetAdd(key, ?????);
}
Je pense que SetAdd est la bonne méthode, mais je ne vois pas comment obtenir mon générique de la liste des Clients (c'est à dire la Liste dans le format de RedisValue.
source d'informationauteur Shane
Vous devez vous connecter pour publier un commentaire.
StackExchange.Redis est un raw client, il parle dans le Redis. Il ne cherche pas à être un ORM de toute nature. Cependant, il permettra de stocker tout
string
oubyte[]
que vous pouvez jeter à elle - ce qui signifie que vous devriez avoir votre choix de sérialiseurs. JSON raisonnable serait de défaut (Jil est génial), même si nous avons tendance à utiliser le protocole tampons de nous-mêmes (via protobuf-net).Il vous avez l'intention d'utiliser la liste de la sémantique, je conseille fortement de partir avec la Liste* des commandes - ensembles ont des sémantiques différentes listes - ensembles sont non ordonnée et seulement stocker des valeurs uniques; des listes de préserver l'ordre et autoriser les doublons.
Peut-être que ça aide. J'ai aussi été confrontés à la même question au début de ma plongée dans StackExchange.Redis. Dans mon projet, j'ai créé 2 méthodes d'extension, qui m'aident à sérialiser/désérialiser de type complexe pour le Redis. Vous pouvez les étendre à vos besoins.
Méthodes:
Utilisation:
Une amélioration de Andrey Gubal's réponse, pour gérer nullable propriétés ou valeurs null:
C'est une option
AzureredisDb.Le Cache est ConnectionMultiplexer.Connecter et GetDatabase();