Concurrency 如何处理对redis密钥的并发更新?

Concurrency 如何处理对redis密钥的并发更新?,concurrency,redis,Concurrency,Redis,我在谷歌搜索了同一个网站,但没有找到一个明确的答案 我想解决的用例如下。多个系统发送与同一标识符关联的流程完成状态。我想在与同一标识符关联的所有进程完成时发出通知。我想用redis作为我的数据存储,标识符作为键。通知系统是多线程的,将处理来自不同系统的状态完成事件 场景:标识符123有两个与之关联的进程p1和p2。假设其中一个通知系统线程处理p1完成状态。它从redis中提取与123相关的数据。它看到p2尚未完成。它将p1完成状态添加到redis值并更新密钥。假设P2完成状态也会发生同样的事情。

我在谷歌搜索了同一个网站,但没有找到一个明确的答案

我想解决的用例如下。多个系统发送与同一标识符关联的流程完成状态。我想在与同一标识符关联的所有进程完成时发出通知。我想用redis作为我的数据存储,标识符作为键。通知系统是多线程的,将处理来自不同系统的状态完成事件

场景:标识符123有两个与之关联的进程p1和p2。假设其中一个通知系统线程处理p1完成状态。它从redis中提取与123相关的数据。它看到p2尚未完成。它将p1完成状态添加到redis值并更新密钥。假设P2完成状态也会发生同样的事情。最后,我的两个线程都没有发出最终完成状态。如何着手解决这个问题

我从redis文档中看到redis是单线程的。这是否意味着当一个线程对一个密钥执行更新时,没有其他线程可以对同一个密钥执行任何读/写操作

我从redis文档中看到redis是单线程的。这是否意味着当一个线程对一个密钥执行更新时,没有其他线程可以对同一个密钥执行任何读/写操作

是的,但这确实意味着在当前线程用新值更新该值之前,另一个线程不会读取该值。这也并不意味着另一个线程,不知道当前线程所做的更新,不会用自己的东西覆盖更新

阅读并特别确保您了解其工作原理