public async Task <TValue> GetAsync <TKey, TValue>(RedisStoreKey <TKey> key) where TValue : IRedisStorable, new() { if (IsConnected) { var valueFromRedis = await RedisDb.StringGetAsync(key); if (!valueFromRedis.IsNull) { var ret = new TValue(); ret.LoadFrom(valueFromRedis); return(ret); } } var valueFromDb = await DbGetAsync <TKey, TValue>(key); if (valueFromDb == null) { return(default(TValue)); } if (!IsConnected) { return(valueFromDb); } var valueForRedis = valueFromDb.ToRedisValue(); #pragma warning disable CS4014 RedisDb.StringSetAsync(key, valueForRedis); #pragma warning restore CS4014 return(valueFromDb); }
protected override async Task <TValue> DbGetAsync <TKey, TValue>(RedisStoreKey <TKey> key) { using (var dynamoCtx = new DynamoDBContext(DynamoDBClient.Instance)) { return(await dynamoCtx.LoadAsync <TValue>(key.Data)); } }
public TValue Get <TKey, TValue>(RedisStoreKey <TKey> key) where TValue : IRedisStorable, new() { if (IsConnected) { var valueFromRedis = RedisDb.StringGet(key); if (!valueFromRedis.IsNull) { var ret = new TValue(); ret.LoadFrom(valueFromRedis); return(ret); } } var valueFromDb = DbGet <TKey, TValue>(key); if (valueFromDb == null) { return(default(TValue)); } if (!IsConnected) { return(valueFromDb); } var valueForRedis = valueFromDb.ToRedisValue(); RedisDb.StringSet(key, valueForRedis); return(valueFromDb); }
protected override TValue DbGet <TKey, TValue>(RedisStoreKey <TKey> key) { using (var dynamoCtx = new DynamoDBContext(DynamoDBClient.Instance)) { return(dynamoCtx.Load <TValue>(key.Data)); } }
public void Set <TKey, TValue>(RedisStoreKey <TKey> key, TValue value) where TValue : IRedisStorable, new() { if (DbSet(value) && IsConnected) { RedisDb.StringSet(key, value.ToRedisValue()); } }
public async Task <bool> SetAsync <TKey, TValue>(RedisStoreKey <TKey> key, TValue value) where TValue : IRedisStorable, new() { if (await DbSetAsync(value)) { return(!IsConnected || await RedisDb.StringSetAsync(key, value.ToRedisValue())); } return(false); }
protected abstract Task <TValue> DbGetAsync <TKey, TValue>(RedisStoreKey <TKey> key);
protected abstract TValue DbGet <TKey, TValue>(RedisStoreKey <TKey> key);