/// <inheritdoc /> public async ValueTask DeleteAsync(BlackjackContext entity) { var key = GetInstanceKey(entity.ChannelId, entity.UserId); Logging.Log.Debug($"MUT - {SessionKey}: {key}"); await cache.HashDeleteAsync(SessionKey, key); }
/// <summary> /// Update the values in Redis. /// </summary> public async ValueTask UpdateAsync(Context context, CancellationToken token = default) { if (updatedKeys.Count == 0) { return; } var cacheKey = GetCacheKey(guildId); var cacheKeys = (await cache.HashKeysAsync(cacheKey)).ToList(); var deletedKeys = updatedKeys .Where(k => !values.TryGetValue(k, out var value) || value.IsNull) .ToList(); foreach (var key in deletedKeys.Where(cacheKeys.Contains)) { await cache.HashDeleteAsync(cacheKey, key); } foreach (var key in updatedKeys) { if (deletedKeys.Contains(key)) { continue; } var value = values[key]; if (cacheKeys.Count >= keyLimit && !cacheKeys.Contains(key)) { throw new MiScriptException($"You can store up to {keyLimit} keys in the storage"); } await using var stream = new MemoryStream(); var writer = new StreamWriter(stream); var jsonWriter = new JsonTextWriter(writer); await value.WriteJsonAsync(context, jsonWriter); await jsonWriter.FlushAsync(token); var json = Encoding.UTF8.GetString(stream.ToArray()); if (json.Length > valueLimit) { throw new MiScriptException($"The value limit is {valueLimit} bytes, tried to store {json.Length} bytes."); } await cache.HashUpsertAsync(cacheKey, key, json); } }
private async Task DeletePayloadAsync(TaskPayload payload) { await cacheClient.HashDeleteAsync(GetObjectNamespace(payload.OwnerId), payload.Uuid); }
/// <inheritdoc /> public async Task CancelTaskAsync(string uuid, Optional <string> ownerId) { await cacheClient.HashDeleteAsync(parent.GetObjectNamespace(ownerId), uuid); }
/// <inheritdoc /> public async ValueTask DeleteAsync(T entity) { await cacheClient.HashDeleteAsync( GetCacheKey(entity), GetMemberKey(entity)); }
/// <inheritdoc /> public Task RemoveCacheAsync(long guildId, string commandName) { return(cache.HashDeleteAsync( CommandCacheKey, commandName + ":" + guildId)); }