如何在Redis缓存中添加/更新/删除值

时间:2018-07-16 20:42:38

标签: c# redis .net-core

我只是分布式缓存的新手,下面有以下代码,该代码将数据库表中用户的列表值存储在缓存中(如果不存在)。

var cacheKey ="samplekey";

var userListdata = //contains list of users from a db table

var data = _distributedCache.GetString(cacheKey);
if (!string.IsNullOrEmpty(data))
{
    var tModel = JsonConvert.DeserializeObject<List<user>>(data);
    return new CommandActionResult<List<user>>(tModel, CommandActionStatus.NothingModified);
}
else
{
    var jsonData = JsonConvert.SerializeObject(userListdata);
    _distributedCache.SetString(cacheKey, jsonData);
    return new CommandActionResult<List<user>>(null, CommandActionStatus.NothingModified);
}

如果我有一个新用户要从表中添加/删除/更新,如何添加/更新/删除 samplekey 缓存键?

1 个答案:

答案 0 :(得分:0)

您可以更改进场方式。将每个用户保存在用户列表数据中,就像在redis缓存中的唯一keyValuePair一样。然后,您可以将其用于插入/更新/删除。

// add the users to azure redis cache
foreach (var user in userListdata)
{
    _distributedCache.StringSet(user.Id, JsonConvert.SerializeObject(user));
}
// update/delete your records
var data = _distributedCache.GetString(cacheKey);
if (!string.IsNullOrEmpty(data)){
    _distributedCache.KeyDelete(cacheKey);
    _distributedCache.StringSet(cacheKey, newValues);
}
// else insert a new one...