我的代码
var redislist = client.As<MyModel>().Lists["key_of_list"];
var m = redislist.SingleOrDefault(p => p.member_id == request.member_id);
m.email = request.email;
所以你可以看到,我有项目m,我也可以更新项目。如果我想更新它并将其保存回redis列表,问题是如何做下一步?
我应该删除它并添加一个新项目,如
redislist.Remove(old_item);
var new_item = new MyModel();
new_item.email = request.email;
redislist.Add(new_item);
顺便问一下,redis.append和redis.add之间的区别是什么?
答案 0 :(得分:1)
不,您需要使用IRedisTypedClient<T>.SetItemInList
which internally uses lset
command,而不是删除和添加项目。
另一方面,添加使用set (i.e. setting a key with some value overwriting it if it exists) and
append`与重要差异(from Redis official documentation)几乎相同:
如果key已存在且为字符串,则此命令会附加该值 在字符串的末尾。如果密钥不存在,则创建并设置密钥 作为一个空字符串,所以APPEND将与此特殊中的SET类似 情况下。