Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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
Redis 如何在Aerospike中保存信号量?_Redis_Aerospike - Fatal编程技术网

Redis 如何在Aerospike中保存信号量?

Redis 如何在Aerospike中保存信号量?,redis,aerospike,Redis,Aerospike,我们一直使用Aeropsike作为唯一的关键价值存储。然而,现在我找不到一种方法来像我们在美国那样在Aeropsike上真正地保存一个锁 我想,我总是可以将本机应用程序锁保存为blob,但这意味着我将仅限于应用程序中的特定实现。不要相信你可以在Aerospike中“保存”锁。任何形式的锁定都必须在应用程序级别实现,然后您必须处理放弃锁定的锁定客户端 我建议你读一下马丁·克莱普曼的书。它涵盖了分布式系统社区中的人们在克莱普曼之前的文章之后不得不讨论安提雷斯的话题 构建a根本不是一个小问题,红锁作为

我们一直使用Aeropsike作为唯一的关键价值存储。然而,现在我找不到一种方法来像我们在美国那样在Aeropsike上真正地保存一个锁


我想,我总是可以将本机应用程序锁保存为blob,但这意味着我将仅限于应用程序中的特定实现。

不要相信你可以在Aerospike中“保存”锁。任何形式的锁定都必须在应用程序级别实现,然后您必须处理放弃锁定的锁定客户端

我建议你读一下马丁·克莱普曼的书。它涵盖了分布式系统社区中的人们在克莱普曼之前的文章之后不得不讨论安提雷斯的话题

构建a根本不是一个小问题,红锁作为一个问题失败了。如果你准备好了,你可以考虑在SooSpkes公司版4上写这样的事情。
与Redis及其变体不同,.

谢谢,我在等Aerospike社区的人来确认。在这种情况下,我将评估Redis和Hazelcast,因为我希望避免在应用程序中实现。为什么需要锁?您正在尝试执行多记录事务吗?顺便说一句,如果您只想在同一记录上执行读-修改-写-Aerospike确实提供了一种使用生成计数器执行等效乐观锁定的方法-CAS-检查并设置或比较并设置-使用EXPECT_GENEQUAL策略。是的,我知道。我可以用它来维护应用程序锁对象(比如java的Reentrantlock),但我认为本机锁是一个很好的实用工具,就像Hazelcast的ILockLet一样,Redis的Redlock是一个实现不好的DLM,分布式计算社区在评论中把它撕成了一个新的。Hazelcast让Jepsen惨败,所以你不能在它上面建立DLM。谷歌是你研究的朋友。Aerospike EE具有可线性化的强一致性,可以用来创建这样的服务。我本来会对这个答案投赞成票的,但说安雷兹坏话可不好!我知道他在讨论中会很有激情,但我仍然尊敬他。Redis是开源的,他的工作不是总是拿出最好的工作材料。顺便说一句,我已经阅读了所有关于Redlock的讨论,我不确定是否使用它。你可以为开源做出贡献,但仍然是一个巨大的怪人,例如Linus。你也可以是一个更普通的人——一个知识有限的人,仍然会热情地向一位学者“解释”他们所研究的领域,这就是为什么我在那里放上Kellabyte的推文。我认为在这种情况下,“曼斯普莱纳”是(a)事实性的,(b)几乎不说坏话。