sql >> Database teknologi >  >> NoSQL >> Redis

Hvordan skal jeg bruge Booksleeve med protobuf-net?

Det er helt korrekt. "Get" (BookSleeve) returnerer en udskudt byte[] . Du har brugt Vent korrekt for at få den faktiske byte[] , og brugte derefter en MemoryStream over denne byte[] for at kalde Deserialize via protobuf-net.

Alt godt.

Hvis du gør det klart, hvilke trin du finder grimme, kan jeg måske være mere specifik, men:

  • BookSleeve er fuldstændig asynkront via Task , derfor behovet for enten Wait eller ContinueWith for at få adgang til byte[]
  • protobuf-net er fuldstændig stream-baseret, og derfor er der behov for MemoryStream at sidde oven på en byte[]

Hvis du tilføjer en generisk hjælpemetode (måske en udvidelsesmetode), behøver du selvfølgelig kun at skrive den én gang.

Og med tilføjelsen hvis en wrapper-klasse (til noget sporing/glidende-udløb) og en L1-cache (Redis som L2), er dette stort set nøjagtigt, hvordan vi bruger det ved stackoverflow.

En bemærkning:forbindelsen er trådsikker og beregnet til at blive massivt delt; foretag ikke en forbindelse pr. handling.




  1. Spring boot starter data hvile, @Notnull begrænsning virker ikke

  2. Hvordan kan jeg læse fra Redis inde i en MULTI-blok i Ruby?

  3. Hvordan oprettes forbindelse til Atlas M0 (Free Tier) klynge korrekt via Java-driver?

  4. Fjern alle felter, der er nul