Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
Javascript 如何做Redis树并优化它+;Node.js_Javascript_Node.js_Optimization_Tree_Redis - Fatal编程技术网

Javascript 如何做Redis树并优化它+;Node.js

Javascript 如何做Redis树并优化它+;Node.js,javascript,node.js,optimization,tree,redis,Javascript,Node.js,Optimization,Tree,Redis,我需要缓存数据,这些数据将由几个node.js工作人员使用。下面是该数据的层次结构,共有3层: 每个类别都有相同的子类别,并且它们的大小都是固定的。 每个“数据”包含4个字段,其中一个是唯一的ID。将有相当多的“数据”插入和删除 在Redis中实现这种数据库的最佳方式是什么?cat+subcat的散列集,因为我有固定数量的cat+subcat,而且每个字段都有唯一的ID,所以数据也有散列集 谢谢 实现这一点有多种方法。 一种是存储名称串联的哈希集 "category:subcategory:d

我需要缓存数据,这些数据将由几个node.js工作人员使用。下面是该数据的层次结构,共有3层:

每个类别都有相同的子类别,并且它们的大小都是固定的。 每个“数据”包含4个字段,其中一个是唯一的ID。将有相当多的“数据”插入和删除

在Redis中实现这种数据库的最佳方式是什么?cat+subcat的散列集,因为我有固定数量的cat+subcat,而且每个字段都有唯一的ID,所以数据也有散列集


谢谢

实现这一点有多种方法。 一种是存储名称串联的哈希集

"category:subcategory:data" -> key1: value1, key2: value2, ...
如果你知道你在寻找什么,你可以通过这个获取你的信息。 如果搜索是您的问题,那么您需要向redis服务器添加更多调用,这将对性能产生影响。但这完全取决于您希望如何搜索这些数据

作为元信息,您可以创建单独的哈希集,以便于不丢失数据

List of categories
Hashset of categories -> SubCategories
categories:subcategories -> 4data points
categories:subcategories:data -> keys and values.

您将如何访问数据?您是要扫描一个类别的所有成员,还是只通过ID直接访问节点并测试类别成员资格?我从我的主子类别开始,然后查找最相似的数据字段。我想得到1个子类别,循环Node.js中的数据,然后从redis中删除最佳(最相似)字段。您可能应该用用例的细节更新您的问题。有很多方法可以表示分类数据。但是这个图表是一个很好的开始:)如果你是说搜索是我的问题,我可以很容易地做“HGETALL 1:1”,它适合我的需要。我又添加了一个类别,所以现在HGETALL后面会跟着“1:1:1”。在1:n:m中,我有n=240,m=18,因此我创建了n*m=4320个密钥-每个密钥仍然有O(1)访问时间,因此唯一的瓶颈将是有O(n)的HGETALL-考虑到一个x:y:z中没有那么多元素,它将非常快,对吗?是的,x:y:z上的HGETALL是O(4)因为你有4个字段连接到它之前是的,它会比所有键上的hgetall快很多