/// <summary> /// 初始化数据库环境、实例化子类中,所有Set属性 /// </summary> public void Initializer() { if (IsInitializer) { return; } _client = new RedisClient(_redisConnection); IsInitializer = true; Connection = new RedisConnection(_client); Hash = new RedisHash(_client); Key = new RedisKey(_client); List = new RedisList(_client); PubSub = new RedisPubSub(_client); Script = new RedisScript(_client); Server = new RedisServer(_client); Set = new RedisSet(_client); SortedSet = new RedisSortedSet(_client); String = new RedisString(_client); Transaction = new RedisTransaction(_client); Bit = new RedisBit(_client); Expire = new RedisExpire(_client); Sort = new RedisSort(_client); Number = new RedisNumber(_client); }
public IActionResult JoinProjectIco([FromBody] IcoOrderReq icoOrder) { try { var reply = Client.JoinProjectIco(icoOrder); JObject data = new JObject(); data["user_id"] = reply.UserId.ToString(); data["project_id"] = reply.ProjectId; data["stage_id"] = reply.StageId; data["price"] = reply.Price; data["base_coin"] = reply.BaseCoin; data["target_coin"] = reply.TargetCoin; data["pay_count"] = reply.PayAmount; data["locktype"] = reply.LockType; string jsonString = JsonHelper.ToJson(data); //调用Redis服务 string message = ""; var result = RedisScript.GetInstance().ExecuteScript(jsonString, out message); if (result) { return(Json(new JsonResultModel(ReturnCode.Success, "User join project successful."))); } else { return(Json(new JsonResultModel(ReturnCode.SubmitError, message))); } } catch (RpcException ex) { return(Json(new JsonResultModel(ReturnCode.SubmitError, ex.Status.Detail))); } }
public void RedisScriptTest() { string script = "{\"user_id\": \"24\", \"project_id\": \"6\", \"stage_id\": \"9\", \"price\":\"1500000000\", \"base_coin\":\"100001\", \"target_coin\":\"100002\", \"pay_count\":\"250000000\", \"locktype\":\"2\"}"; var redis = new RedisScript("192.168.1.145:6379", "123456"); string message; bool result = redis.ExecuteScript(script, out message); Console.WriteLine($"Result: {result}, Message:{message}"); }
public void ConvertObjectToJson() { JObject data = new JObject(); data["user_id"] = "24"; //用户Id data["project_id"] = 6; //项目id data["stage_id"] = 9; data["price"] = 1500000000; //价格 data["base_coin"] = "100001"; data["target_coin"] = "100002"; data["pay_count"] = 250000000; //花费 data["locktype"] = 2; //锁定状态 string jsonData = JsonHelper.ToJson(data, true); string message; bool result = RedisScript.GetInstance().ExecuteScript(jsonData, out message); Console.WriteLine($"Result: {result}, Message:{message}"); }
public virtual ValueTask <RedisResult> ExecuteScriptAsync(RedisScript script, params string[] parameters) { var actions = new NoLockInMemoryDatabaseActions(_data); switch (script) { case RedisScript.JoinedParticipantsRepository_RemoveParticipant: return(JoinedParticipantsRepository_RemoveParticipant(actions, parameters[0], parameters[1], parameters[2])); case RedisScript.JoinedParticipantsRepository_RemoveParticipantSafe: return(JoinedParticipantsRepository_RemoveParticipantSafe(actions, parameters[0], parameters[1], parameters[2], parameters[3])); case RedisScript.RoomRepository_SetParticipantRoom: return(RoomRepository_SetParticipantRoom(actions, parameters[0], parameters[1], parameters[2], parameters[3])); default: throw new ArgumentOutOfRangeException(nameof(script), script, null); } }
/// <summary> /// 初始化数据库环境、实例化子类中,所有Set属性 /// </summary> public void Initializer() { if (IsInitializer) { return; } _client = new RedisClient(_redisConnection); IsInitializer = true; Connection = new RedisConnection(_client); Hash = new RedisHash(_client); Key = new RedisKey(_client); List = new RedisList(_client); PubSub = new RedisPubSub(_client); Script = new RedisScript(_client); Server = new RedisServer(_client); Set = new RedisSet(_client); SortedSet = new RedisSortedSet(_client); String = new RedisString(_client); Transaction = new RedisTransaction(_client); Bit = new RedisBit(_client); Expire = new RedisExpire(_client); Sort = new RedisSort(_client); Number = new RedisNumber(_client); }
public async ValueTask <RedisResult> ExecuteScriptAsync(RedisScript script, params string[] parameters) { var scriptContent = RedisScriptLoader.Load(script); return(await _database.ScriptEvaluateAsync(scriptContent, parameters.Select(x => (RedisKey)x).ToArray())); }
public static string Load(RedisScript script) { return(_scripts[script]); }