1.Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢?
- 虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有
一个线程。客户端访问之间存在竞争,redis里面只有单个命令是执行的。
比如set,get。每执行一个命令都需要客户端来竞争,所以可能出现并发问题
但如果你的命令希望把一组命令执行的结果作为整体,要么全部成功,要么失败,
就必须用锁,或者事务
2.Redis是单线程的么?
Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。但Redis的其他功能,比如持久化,异步删除,集群数据同步等,都是由额外的线程执行的。