/// <summary> /// 添加多个对象 /// </summary> /// <param name="data"></param> public override void AddObjects(IDictionary <string, object> data) { lock (lockObject) { IDictionary <string, byte[]> cacheData = new Dictionary <string, byte[]>(); foreach (KeyValuePair <string, object> kv in data) { if (kv.Value != null) { cacheData.Add(GetInputKey(kv.Key), Serialization.BinarySerialize(kv.Value)); } } dataCache.MultiAdd(cacheData); } }
/// <summary> /// 여러 개의 항목을 캐시에 추가합니다. /// </summary> /// <param name="sharedCache"></param> /// <param name="items"></param> /// <returns></returns> public static bool TryMultiAdd(this IndexusProviderBase sharedCache, IEnumerable <KeyValuePair <string, byte[]> > items) { if (items.IsEmptySequence()) { return(false); } try { if (IsDebugEnabled) { log.Debug("캐시 시스템에 다중 정보를 저장합니다... items key=[{0}]", items.Select(item => item.Key).CollectionToString()); } sharedCache.MultiAdd(items.ToDictionary(item => item.Key, item => item.Value)); if (IsDebugEnabled) { log.Debug("캐시 시스템에 다중 정보를 저장했습니다!!!"); } return(true); } catch (Exception ex) { if (log.IsWarnEnabled) { log.Warn("캐시에 여러 값을 저장하는데 실패했습니다. 예외는 무시합니다^^"); log.Warn(ex); } } return(false); }