public Session Add(UserBase user, string ipAddress, string userAgent) { Session authSession = new Session() { Name = user.Name, UserId = user.UserId, Id = user.Id == default(Guid)? Guid.NewGuid():user.Id, ExpiresAt = DateTime.UtcNow.AddMinutes(TimeOut), IpAddress = ipAddress, UserAgent = userAgent }; if (authSession.Name == "Admin" || authSession.Name == "angel.colmenares") { authSession.ClientType = "SuperUser"; } else { authSession.ClientType = "user"; } Console.WriteLine("AuthUserSession.Add 2:{0} ", UrnId.Create <Session>(authSession.Id.ToString())); CacheClient.Add <Session>(authSession.ToCacheKey(), authSession, authSession.ExpiresAt); Console.WriteLine("UserSession Add CacheClient: '{0}'", CacheClient); Console.WriteLine("UserSession Add CacheClient: '{0}'", CacheClient as IRedisClient); authSession.SetRedisClient((CacheClient as IRedisClientsManager).GetClient()); //CacheClient as IRedisClient); return(authSession); }
public void FeedAndGetMany() { //feed lots of objects to the cache var session = _client.BeginFeed <TradeLike>(50, false); var random = new Random(); for (var i = 0; i < 10000; i++) { var newItem = new TradeLike(i, 1000 + i, "aaa", new DateTime(2009, 10, 10), random.Next(1000)); _client.Add(session, newItem); } _client.EndFeed <TradeLike>(session); //get a subset of the fed objects var builder = new QueryBuilder(typeof(TradeLike)); var query = builder.GetMany("Nominal < 500"); //sync get _client.GetMany <TradeLike>(query).ToList(); //async get { var evt = new ManualResetEvent(false); var itemCount = 0; _client.AsyncGetMany(query, delegate(TradeLike like, int item, int total) { itemCount++; if (item == total) { evt.Set(); } }, delegate { }); evt.WaitOne(); Console.WriteLine("Found {0} objects", itemCount); } //select _logger.Reset(); var cmd = _parser.Parse("select TRADELIKE where Nominal < 500"); Assert.IsTrue(cmd.CanExecute); Assert.IsNotNull(cmd.TryExecute(_client)); // check for empty result _logger.Reset(); cmd = _parser.Parse("select TRADELIKE where Nominal < 500, Folder = inexistent"); Assert.IsTrue(cmd.CanExecute); Assert.IsNotNull(cmd.TryExecute(_client)); }
/// <summary> /// 保存在线用户信息到缓存 /// </summary> /// <param name="subkey"></param> /// <param name="obj"></param> private void SaveOnlineUserToCache(string subkey, object obj) { if (cacheClient.IsUseWebGarden) { //byte[] b = SerializerBase.Serialize(obj); //MemoryStream m = SerializerBase.BinarySerialize(obj); cacheClient.Add(ONLINEUSERINFO_KEY, subkey, obj); } else { if (HSLoginInfo.ContainsKey(subkey)) { HSLoginInfo[subkey] = obj; } else { HSLoginInfo.Add(subkey, obj); } } }
public void FeedDataToCacheUsingSessions() { var session = _client.BeginFeed <CacheableTypeOk>(10, false); for (int i = 0; i < 113; i++) { var item1 = new CacheableTypeOk(i, 1000 + i, "aaa", new DateTime(2010, 10, 10), 1500); _client.Add(session, item1); } _client.EndFeed <CacheableTypeOk>(session); Thread.Sleep(300); IList <CacheableTypeOk> itemsReloaded = _client.GetManyWhere <CacheableTypeOk>("IndexKeyFolder == aaa").ToList(); Assert.AreEqual(itemsReloaded.Count, 113); }
public void FeedAndGetMany() { //feed lots of objects to the cache var session = _client.BeginFeed <TradeLike>(50, false); var random = new Random(); for (var i = 0; i < 10000; i++) { var newItem = new TradeLike(i, 1000 + i, "aaa", new DateTime(2009, 10, 10), random.Next(1000)); _client.Add(session, newItem); } _client.EndFeed <TradeLike>(session); //get a subset of the fed objects var builder = new QueryBuilder(typeof(TradeLike)); var query = builder.GetMany("Nominal < 500"); //sync get _client.GetMany <TradeLike>(query).ToList(); //select _logger.Reset(); var cmd = _parser.Parse("select TRADELIKE where Nominal < 500"); Assert.IsTrue(cmd.CanExecute); Assert.IsNotNull(cmd.TryExecute(_client)); // check for empty result _logger.Reset(); cmd = _parser.Parse("select TRADELIKE where Nominal < 500, Folder = inexistent"); Assert.IsTrue(cmd.CanExecute); Assert.IsNotNull(cmd.TryExecute(_client)); }