public void UpdateUser(int userId) { //update cache, already updated,then call this method //update redis var user = GetUser(userId); var redisDb = GameManager.RedisMultiplexer.GetDatabase(0); var key = user.GetType().FullName; var field = userId; var value = ProtoBufUtils.Serialize(user); redisDb.HashSet(key, field, value); //update mysql using (IDbConnection connection = GameManager.DbFactory.OpenDbConnection()) { connection.Update(user); } }
public void AddUser(int userId) { var user = CreateUser(userId); //add to cache userCache.Add(userId.ToString(), user); //add to redis var redisDb = GameManager.RedisMultiplexer.GetDatabase(0); var key = user.GetType().FullName; var field = userId; var value = ProtoBufUtils.Serialize(user); redisDb.HashSet(key, field, value); //add to mysql using (IDbConnection connection = GameManager.DbFactory.OpenDbConnection()) { connection.Insert(user); } }
public void Load(int userId) { if (userCache[userId.ToString()] != null) { return; } //load from mysql User user; using (IDbConnection connection = GameManager.DbFactory.OpenDbConnection()) { user = connection.SingleById <User>(userId); } //add to cache userCache.Add(userId.ToString(), user); //add to redis var redisDb = GameManager.RedisMultiplexer.GetDatabase(0); var key = user.GetType().FullName; var field = userId; var value = ProtoBufUtils.Serialize(user); redisDb.HashSet(key, field, value); }