Redis
 sql >> база данни >  >> NoSQL >> Redis

Как трябва да използвам Booksleeve с protobuf-net?

Това е напълно правилно. „Get“ (BookSleeve) връща отложен byte[] . Правилно сте използвали Wait, за да получите действителния byte[] , след което използва MemoryStream над този byte[] за да извикате Deserialize чрез protobuf-net.

Всичко добре.

Ако изясните стъпките, които намирате за грозни, може би ще мога да бъда по-конкретен, но:

  • BookSleeve е изцяло асинхронен чрез Task , следователно необходимостта от Wait или ContinueWith за достъп до byte[]
  • protobuf-net е изцяло базиран на поток, следователно необходимостта от MemoryStream за да седне на върха на byte[]

Разбира се, ако добавите общ помощен метод (може би метод за разширение), трябва да го напишете само веднъж.

И с добавянето if клас на обвивка (за известно проследяване/плъзгане на изтичане) и L1 кеш (Redis като L2), това е почти точно как го използваме при stackoverflow.

Една забележка:връзката е безопасна за нишки и е предназначена за масово споделяне; не правете връзка на операция.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Фатална грешка:Неуловено изключение „RedisException“ със съобщение „Redis сървърът изчезна“

  2. Как да преместя база данни Redis от един сървър на друг?

  3. Redis, слушане на pubsub събития и превръщането им в поток за по-надеждно потребление

  4. Как да стартирате redis-сървър на различен порт от порта по подразбиране 6379 в ubuntu

  5. Как да стартирам Redis сървър И друго приложение в Docker?