Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用堆栈交换redis库中的键模式获取值列表_C#_Redis_Stackexchange.redis - Fatal编程技术网

C# 如何使用堆栈交换redis库中的键模式获取值列表

C# 如何使用堆栈交换redis库中的键模式获取值列表,c#,redis,stackexchange.redis,C#,Redis,Stackexchange.redis,在控制台应用程序上,我有一个包含一些通用集合的单例类。 这些集合以前保存在内存中,我们正在尝试使用堆栈交换redis库将它们移动到redis 基类是: public class QueueParamDTO { public string Queue { get; set; } public int Max { get; set; } public int Calls { get; set; } public int Holdtime { get; set; }

在控制台应用程序上,我有一个包含一些通用集合的单例类。 这些集合以前保存在内存中,我们正在尝试使用堆栈交换redis库将它们移动到redis

基类是:

public class QueueParamDTO
{
    public string Queue { get; set; }
    public int Max { get; set; }
    public int Calls { get; set; }
    public int Holdtime { get; set; }
    public int TalkTime { get; set; }
    public int Completed { get; set; }
    public int Abandoned { get; set; }
    ...
} 
类的Property
Queue
的值是唯一的,因此我使用它来构建键,而值是上面对象的序列化字符串

RedisSingleton.Connection.GetDatabase().StringSet($"queue:{queueParam.Queue}",JsonConvert.SerializeObject(queueParam));
我能够读取单个值并反序列化对象。还可以使用以下模式检索键的完整列表:

var keys = server.Keys(pattern: "queue:*", pageSize: 100);

如何对值执行相同的操作,即使用如上所述的特定键模式获取值列表?

首先获取要从redis检索的键列表,并将其转换为
RedisKey[]数组:

RedisKey[] queueKeys = RedisSingleton.Server.Keys(pattern: "queue:*").ToArray();
RedisValue[] queueValues=RedisSingleton.Connection.GetDatabase().StringGet(queueKeys);
我能够检索
RedisValue[]
的列表:

RedisKey[] queueKeys = RedisSingleton.Server.Keys(pattern: "queue:*").ToArray();
RedisValue[] queueValues=RedisSingleton.Connection.GetDatabase().StringGet(queueKeys);
最后,我选择并反序列化到
QueueParamDTO
对象列表:

List<QueueParamDTO> queues = queueValues.Select(qv => JsonConvert.DeserializeObject<QueueParamDTO>(qv)).ToList();
List queues=queueValues.Select(qv=>JsonConvert.DeserializeObject(qv)).ToList();