Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment devrais-je utiliser Booksleeve avec protobuf-net ?

C'est tout à fait exact. "Get" (BookSleeve) renvoie un byte[] différé . Vous avez correctement utilisé Wait pour obtenir le byte[] réel , puis utilisé un MemoryStream sur ce byte[] pour appeler Deserialize via protobuf-net.

Tout va bien.

Si vous précisez les étapes que vous trouvez laide, je pourrais peut-être être plus précis, mais :

  • BookSleeve est entièrement asynchrone via Task , d'où la nécessité soit de Wait ou ContinueWith pour accéder au byte[]
  • protobuf-net est entièrement basé sur Stream, d'où le besoin de MemoryStream s'asseoir au-dessus d'un byte[]

Bien sûr, si vous ajoutez une méthode utilitaire générique (peut-être une méthode d'extension), vous n'avez besoin de l'écrire qu'une seule fois.

Et avec l'ajout d'une classe wrapper (pour certains tracking/sliding-expiry) et d'un cache L1 (Redis comme L2), c'est à peu près exactement comment nous l'utilisons à stackoverflow.

Une remarque :la connexion est thread-safe et destinée à être massivement partagée; ne faites pas de connexion par opération.