Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢?
个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有
一个线程。客户端访问之间存在竞争,请问是这样的吗? 谢谢了。

你说的对,因为存在多客户端并发,所以必须保证操作的原子性。比如银行卡扣款问题,获取余额,判断,扣款,写回就必须构成事务,否则就可能出错。

大白话来说,因为客户端多线程操作,可能服务器的处理的顺序就会乱掉,并不是你想要的那种结果,所以需要锁。

那是redis里面只有单个命令是执行的。比如set,get。但如果你的命令希望把一组命令执行的结果作为整体。要么全部成功,要么失败。你就需要multi来执行事务