Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 如何根据键在redis中存储datatable_C# 4.0_Redis - Fatal编程技术网

C# 4.0 如何根据键在redis中存储datatable

C# 4.0 如何根据键在redis中存储datatable,c#-4.0,redis,C# 4.0,Redis,我正在使用redis进行缓存。我在数据库上启动了一个存储过程,并将结果转换为datatable。现在我必须将这个数据表存储在redis缓存中。让我知道最好的方法。Redis为存储数据提供了更强大的数据类型 您需要查看散列、集合、列表、简单键、排序集合,以确定什么样的数据类型适合您的需求 您可能应该知道如何使用这些存储的数据,然后选择适合/满足您需要的最佳数据结构 这里是一个关于redis数据类型的小介绍 正如您在问题中提到的datatable,我假设您有以下格式的数据 Id name statu

我正在使用redis进行缓存。我在数据库上启动了一个存储过程,并将结果转换为datatable。现在我必须将这个数据表存储在redis缓存中。让我知道最好的方法。

Redis为存储数据提供了更强大的数据类型

您需要查看散列、集合、列表、简单键、排序集合,以确定什么样的数据类型适合您的需求

您可能应该知道如何使用这些存储的数据,然后选择适合/满足您需要的最佳数据结构

这里是一个关于redis数据类型的小介绍

正如您在问题中提到的datatable,我假设您有以下格式的数据

Id name status
 1  XYZ  A
 2  ABC  I
如果您有此格式的数据。我会把它放到散列中。所以1条记录=1个散列

HMSET datatable:1 name XYZ status A
HMSET datatable:2 name ABC status I
我将把散列键保存在另一组中

SADD datatable:keys 1 
SADD datatable:keys 2
然后可以使用

SMEMBERS datatable:keys
然后你可以得到所有的散列。确保使用REDIS管道。如果您使用的是Redis2.8,则不需要使用SMEMBERS并在应用程序级别处理它。您可以直接使用SORT命令

SORT datatable:keys BY nosort GET datatable:*->name GET datatable:*->status

这将为您提供datatable:1和datatable:2的名称和状态

告诉我们有关数据性质的更多信息。它有多大?它是如何构造的?实际上,我正在做的是将数据提取为datatable,然后将每个记录转换为一个键集合val pair,然后将每个集合添加到一个主键集合中。因此,最终主键集合将作为一个集合具有其值。Yaa tht也可以工作,但不是一种优雅的方式。如果不将记录作为散列,您将失去对数据的控制。就像你不能只拿到几个字段一样。记忆集是随机的,所以,如果您有操作,您希望获取前10条记录。每次你将获取新记录,你将获得不同的记录。