p.me-6ren">
gpt4 book ai didi

redis - 如何使用 servicestack 类型的客户端更新 redis 列表中的项目?

转载 作者:可可西里 更新时间:2023-11-01 11:21:05 24 4
gpt4 key购买 nike

我的代码片段

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 有什么区别?

最佳答案

不,您需要使用 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) :

If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string, so APPEND will be similar to SET in this special case.

关于redis - 如何使用 servicestack 类型的客户端更新 redis 列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com