Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Database Redis存储(或任何数据库?)锁定机制(NodeJS)_Database_Node.js_Locking_Redis_Storage - Fatal编程技术网

Database Redis存储(或任何数据库?)锁定机制(NodeJS)

Database Redis存储(或任何数据库?)锁定机制(NodeJS),database,node.js,locking,redis,storage,Database,Node.js,Locking,Redis,Storage,我有以下问题:我正在与via一起使用,我的NodeJS Web服务器正在从Redis检索一些数据,对其执行一些操作并将其保存回Redis。但是这个操作(称为X)可能需要一段时间,因此多个用户可以在同一资源上同时启动它 因此,如果用户a触发X,用户B同时触发X,我希望用户a完成作业,然后用户B获取(处理过的)数据并执行X。同时,用户B等待。用户的顺序是不相关的——只是一次一个。那么在我的场景中如何实现这一点呢?如何锁定/解锁Redis?甚至有可能吗?在Redis中有几种实现锁定的方法,在不了解更多

我有以下问题:我正在与via一起使用,我的NodeJS Web服务器正在从Redis检索一些数据,对其执行一些操作并将其保存回Redis。但是这个操作(称为X)可能需要一段时间,因此多个用户可以在同一资源上同时启动它


因此,如果用户a触发X,用户B同时触发X,我希望用户a完成作业,然后用户B获取(处理过的)数据并执行X。同时,用户B等待。用户的顺序是不相关的——只是一次一个。那么在我的场景中如何实现这一点呢?如何锁定/解锁Redis?甚至有可能吗?

在Redis中有几种实现锁定的方法,在不了解更多场景的情况下,
SETNX
似乎可以工作。请参阅Redis文档中的。另外,这可能是一本有趣的书,尽管我怀疑这本书并不是你想要的。

很好的链接!我想这正是我需要的!我已经知道了交易,但找不到任何关于锁定的信息。非常感谢。:)