2014-08-27 14 views
18

tôi đã có thể làm điều này trong ServiceStack.redis bằng cách sử dụng,Làm cách nào để lưu trữ các đối tượng do người dùng xác định bằng cách sử dụng StackExchange.Redis?

IRedisTypedClient<ObjectName> myObj = redisClient.As<ObjectName>(); 

Nhưng tôi không thể tìm thấy bất kỳ ví dụ để làm điều này trong StackExchange.Redis.

Tôi có phải Serialize thành JSON và sau đó lưu trữ chúng không?

Thanx trước.

Trả lời

19

Tại thời điểm hiện tại, SE.Redis không cố gắng cung cấp tuần tự hóa - có quá nhiều cách khác nhau để thực hiện việc đó. Tôi thích ý kiến ​​rằng thư viện nên làm một việc, chứ không phải 7. Có thể thêm bất kỳ mối quan tâm nối tiếp v.v ... chỉ đơn giản bằng các phương pháp mở rộng hoặc mã ống/mã gói khác, chọn bất kỳ chiến lược tuần tự hóa nào bạn chọn và bất kỳ thư viện nào bạn chọn.

+0

Vì vậy, giải pháp là một lớp trừu tượng? Tôi đánh giá cao rằng StackExchange.Redis là một khách hàng khá trần và các mối quan tâm khác nên được thực hiện như là phần mở rộng. Bất kỳ suy nghĩ nào về https://github.com/imperugo/StackExchange.Redis.Extensions? Ngoài ra, cảm ơn bạn rất nhiều vì điều này! – Vince

6

Giải pháp đơn giản nhất sẽ sử dụng json/nhị phân/tuần tự hóa khác. Phức tạp hơn nhưng bản địa hơn - sử dụng redis "hashes" data type.

Trong trường hợp đầu tiên, tôi thích thư viện protobuf (được bao gồm theo gói mặc định là StackExchange.Redis.Extensions.Protobuf gói). Nhưng bạn có thể sử dụng json/nhị phân/xml serialization nếu bạn cần.

Có một báo cáo hiệu suất tốt về họ tất cả: http://www.maxondev.com/serialization-performance-comparison-c-net-formats-frameworks-xmldatacontractserializer-xmlserializer-binaryformatter-json-newtonsoft-servicestack-text/

Các vấn đề liên quan