我正在尝试在go程序中实现以下逻辑:
def action:
1. GET the value of KEY from Redis
2. SET the value of KEY to 0
我正在使用go-redis
模块与我的Redis实例进行交互。
我对Redis交易很熟悉,但是我似乎找不到关于如何在Golang中以并发安全和原子的方式实现所需操作集的不错的文档或示例。
问题:即使我从不同的go例程访问Redis实例,如何实现定义的action
并确保在步骤1和2之间不会发生其他Redis操作?
答案 0 :(得分:1)
您可以使用单个Redis命令GETSET
来完成此操作,该命令将是原子的:
GETSET KEY 0
更广泛地说,关于确保Redis中的原子性并没有特定于Go的内容。您只需使用熟悉的相同Redis交易工具(通过Go Redis客户端)即可。