gpt4 book ai didi

redis - 如何设置(覆盖)哈希中的所有项目

转载 作者:可可西里 更新时间:2023-11-01 11:13:49 26 4
gpt4 key购买 nike

我想在哈希中设置所有条目。 (SetAllEntriesToHash)

它必须在运行前清除哈希中的所有项目。

与GetAllEntriesFromHash相反

最佳答案

这里有几个选项。

1) 您可以让 ServiceStack 使用高级 Redis API 为您处理这件事。

public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}

...

// Client
var client = new RedisClient("localhost", 6379);

// This will store the object for you in a Redis hash.
client.StoreAsHash(new Poco { Id = 1, Name = "Test Name", Description = "Test Description" });

// This will fetch it back for you.
var result = client.GetFromHash<Poco>(1);

这种方法将使您不必直接处理散列细节。 ServiceStack 会为你弄清楚一切,并自动将你发送的对象填充到哈希中。如果您想更新该对象,只需向它发送一个具有相同 ID 的新对象即可。

另一方面,您将放弃对数据在 Redis 中的存储方式的控制,以获得更轻松的编程体验。

2) 您自己处理所有事情。没有预先构建的 SetAllEntriesToHash 函数。

// Client
var client = new RedisClient("localhost", 6379);

// Clear all existing keys
var keysToClear = new Dictionary<string,string>();
client.GetHashKeys("xxxxx").ForEach(k => keysToClear.Add(k, ""));
client.SetRangeInHash("xxxxx", keysToClear);

// Save new key/values.
client.SetRangeInHash("xxxxx", new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("1", "value 1"),
new KeyValuePair<string, string>("2", "value 2"),
new KeyValuePair<string, string>("3", "value 3"),
});

或者,删除并重新创建散列可能更容易。

我还想提请您注意 RedisNativeClient。它允许您运行直接映射到 http://redis.io/commands 的 Redis 命令.

关于redis - 如何设置(覆盖)哈希中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455010/

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