/// <summary> /// `JSON.SET` /// /// Sets the JSON value at path in key /// /// For new Redis keys the path must be the root. /// /// For existing keys, when the entire path exists, the value that it contains is replaced with the json value. /// /// https://oss.redislabs.com/rejson/commands/#jsonset /// </summary> /// <param name="db"></param> /// <param name="key">Key where JSON object is to be stored.</param> /// <param name="obj">The object to serialize and send.</param> /// <param name="path">The path which you want to persist the JSON object. For new objects this must be root.</param> /// <param name="setOption">By default the object will be overwritten, but you can specify that the object be set only if it doesn't already exist or to set only IF it exists.</param> /// <param name="commandFlags"></param> /// <typeparam name="TObjectType">Type of the object being serialized.</typeparam> /// <returns>An `OperationResult` indicating success or failure.</returns> public static Task <OperationResult> JsonSetAsync <TObjectType>(this IDatabaseAsync db, RedisKey key, TObjectType obj, string path = ".", SetOption setOption = SetOption.Default, CommandFlags commandFlags = CommandFlags.None) => db.JsonSetAsync(key, SerializerProxy.Serialize(obj), path, setOption, commandFlags: commandFlags);