標籤:
為了保持程式的高效,建議使用ProtoBuf.
Google Protocol Buffer( 簡稱 Protobuf) 是 Google 公司內部的混合語言資料標準,目前已經正在使用的有超過 48,162 種報文格式定義和超過 12,183 個 .proto 檔案。他們用於 RPC 系統和持續資料存放區系統。
Protocol Buffers 是一種輕便高效的結構化資料存放區格式,可以用於結構化資料序列化,或者說序列化。
Net中使用也很簡單,在NuGet 擷取,使用特性標記即可,有點類似wcf中的契約.
    [ProtoContract]    public class TestQuene    {        [ProtoMember(1)]        public int Id        {            get;            set;        }
簡單的隊列隊列入隊與出隊測試,效果還不錯.
       for (int i = 0; i < 100; i++)            {                MemoryStream xmlw = new MemoryStream();                TestQuene TempTest = new TestQuene() { Id = i, data = new List<string>(new string[] { "1", "2", "3" }) };                Serializer.Serialize<TestQuene>(xmlw, TempTest);                message = Convert.ToBase64String(xmlw.ToArray());                Console.WriteLine("EnqueueItemOnList=" + message);                redis.EnqueueItemOnList("MessageQuene", message);            }
      ThreadPool.UnsafeQueueUserWorkItem(o =>            {                while (true)                {                    try                    {                        MemoryStream ms = new MemoryStream(Convert.FromBase64String(redis.BlockingPopItemFromList("MessageQuene", TimeSpan.FromHours(2))));                        Console.WriteLine("while=" + Serializer.Deserialize<TestQuene>(ms));                    }                    catch (Exception ex)                    {                        Debug.WriteLine(ex.ToString());                    }                }            }, null);
 
Redis 簡易訊息佇列