sql >> Databasteknik >  >> NoSQL >> Redis

Hur ska jag använda Booksleeve med protobuf-net?

Det är helt korrekt. "Get" (BookSleeve) returnerar en uppskjuten byte[] . Du har använt Vänta korrekt för att få den faktiska byte[] , använde sedan en MemoryStream över denna byte[] för att anropa Deserialize via protobuf-net.

Allt bra.

Om du klargör några steg som du tycker är fula kanske jag kan vara mer specifik, men:

  • BookSleeve är helt asynkront via Task , därav behovet av antingen Wait eller ContinueWith för att komma åt byte[]
  • protobuf-net är helt strömbaserat, därav behovet av MemoryStream att sitta ovanpå en byte[]

Om du lägger till en generisk verktygsmetod (kanske en förlängningsmetod) behöver du naturligtvis bara skriva den en gång.

Och med tillägget om en omslagsklass (för viss spårning/sliding-utgång) och en L1-cache (Redis som L2), är det här ganska exakt hur vi använder det vid stackoverflow.

En anmärkning:anslutningen är trådsäker och avsedd att delas massivt; gör inte en anslutning per operation.




  1. Kontrollera att fältet finns med MongoDB

  2. MongoDB skapar inte databas i skalet

  3. använder Async i en transaktion i Spring-applikationen

  4. Kan du ange en nyckel för $addToSet i Mongo?