public void Push(MsgItem msg) { msg = MsgHelper.GetMsgItem(msg); Queue <MsgItem> msgs; try { msgs = cache.Get <Queue <MsgItem> >(MsgKey) ?? new Queue <MsgItem>(); } catch (Exception ex) { msgs = new Queue <MsgItem>(); } msgs.Enqueue(msg); if (msgs.Count > MaxLength) { //多余的 消息放到数据库缓存 准备存到数据库中 IEnumerable <MsgItem> msgsToDBTemp = msgs.Take(msgs.Count - MaxLength).AsEnumerable <MsgItem>(); Queue <MsgItem> msgsToDB = cache.Get <Queue <MsgItem> >(DBKey) ?? new Queue <MsgItem>(); foreach (MsgItem item in msgsToDBTemp) { msgsToDB.Enqueue(msgs.Dequeue()); } if (msgsToDB.Count >= MaxLength) { //写入数据库操作 //并清0 缓存 msgsToDB.Clear(); } cache.Add(DBKey, msgsToDB); } cache.Add(MsgKey, msgs); }
public void SetTest(string name, string value) { _cache.Add("name", "张三"); }