Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tôi nên sử dụng Booksleeve với protobuf-net như thế nào?

Điều đó hoàn toàn chính xác. "Get" (BookSleeve) trả về một byte[] bị trì hoãn . Bạn đã sử dụng chính xác Wait để lấy byte[] thực tế , sau đó sử dụng MemoryStream qua byte[] này để gọi Deserialize qua protobuf-net.

Tất cả đều tốt.

Nếu bạn nói rõ bất kỳ bước nào mà bạn thấy xấu, tôi có thể nói cụ thể hơn, nhưng:

  • BookSleeve hoàn toàn không đồng bộ qua Task , do đó cần Wait hoặc ContinueWith để truy cập byte[]
  • protobuf-net hoàn toàn dựa trên Luồng, do đó cần có MemoryStream để ngồi trên đầu của một byte[]

Tất nhiên, nếu bạn thêm một phương thức tiện ích chung (có thể là một phương thức mở rộng), bạn chỉ cần viết nó một lần.

Và với việc bổ sung if một lớp wrapper (đối với một số theo dõi / trượt-hết hạn) và một bộ nhớ cache L1 (Redis as L2), đây là cách chúng tôi sử dụng nó khá chính xác ở stackoverflow.

Một lưu ý:kết nối là luồng an toàn và dự định sẽ được chia sẻ rộng rãi; không thực hiện kết nối cho mỗi hoạt động.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis đang ghi vào .ssh / allow_keys

  2. Kiểm tra xem một giá trị tồn tại trong danh sách đã được Redis chưa

  3. Đặt trường động trong Ohm / Redis

  4. $ redis biến toàn cục với ruby ​​trên đường ray

  5. Rails, Sidekiq - Redis NOAUTH