我试图在我的go程序中实现以下逻辑:
def action:
1. GET the value of KEY from Redis
2. SET the value of KEY to 0我使用go-redis模块与我的Redis实例进行交互。
我熟悉Redis事务,但我似乎找不到一个不错的文档或示例,说明如何在Golang中以并发、安全和原子的方式实现所需的一组操作。
问题:我如何实现定义的action,并确保步骤1和步骤2之间不会发生其他action操作,即使我从不同的go例程访问Redis实例?
发布于 2019-03-11 13:16:54
您可以使用单个Redis命令GETSET来完成这一任务,该命令将是原子的:
GETSET KEY 0更广泛地说,在确保Redis原子性方面没有任何具体规定。您只需使用熟悉的Redis事务处理工具(通过Go Redis客户端)即可。
https://stackoverflow.com/questions/55102652
复制相似问题