Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak powinienem używać Booksleeve z protobuf-net?

To jest całkowicie poprawne. "Get" (BookSleeve) zwraca odroczony byte[] . Prawidłowo użyłeś Wait, aby uzyskać rzeczywisty byte[] , a następnie użył MemoryStream nad tym byte[] wywołać Deserialize przez protobuf-net.

Wszystko dobrze.

Jeśli wyjaśnisz wszelkie kroki, które uważasz za brzydkie, być może będę mógł być bardziej szczegółowy, ale:

  • BookSleeve jest całkowicie asynchroniczny za pomocą Task , stąd potrzeba albo Wait lub ContinueWith aby uzyskać dostęp do byte[]
  • protobuf-net jest całkowicie oparty na strumieniu, stąd potrzeba MemoryStream siedzieć na szczycie byte[]

Oczywiście, jeśli dodasz ogólną metodę narzędziową (być może metodę rozszerzającą), wystarczy napisać ją tylko raz.

A z dodatkiem klasy opakowującej (dla niektórych wygasania śledzenia/przesuwania) i pamięci podręcznej L1 (Redis jako L2), jest to prawie dokładnie sposób, w jaki używamy go przy przepełnieniu stosu.

Jedna uwaga:połączenie jest bezpieczne wątkowo i przeznaczone do masowego udostępniania; nie rób połączenia na operację.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Szybsza metoda przenoszenia danych redis do MySQL

  2. Poznaj bazę danych Redis:iteracja po klawiszach

  3. blpop po chwili zatrzymuje przetwarzanie kolejki

  4. Alternatywy dla struktur zagnieżdżonych w Redis?

  5. jak czytasz wszystkie bajty, które przychodzą na połączenie tcp?