Redis特点
- 快。基于内存,IO多路复用机制。读11W/s,写8W/s,读写操作都在内存中完成(异步写入磁盘)
- 支持事务。一个事务是一个原子操作。但是事务内的错误不能回滚,只能是语法问题,开发时可发现。
- 可持久化。可以持久化到磁盘,且掉电后可根据AOF或RDB恢复
- 丰富的数据结构
为什么快?
- 基于内存。
- IO多路复用。非阻塞IO,多个IO操作可以在一个线程内并发处理。
单线程与多线程
- Redis的瓶颈不在CPU,而是内存和网络。 所以一直是单线程处理,能避免并发加锁和线程切换的损耗等复杂问题。
- Redis4.0 主线程处理命令读写、解析、执行。 也有其他线程 清理脏数据、释放无用连接 等。
- Redis6.0 增加了多线程功能,但默认不开启。(开启io-threads-do-reads yes,设置数量io-threads小于CPU数)
- 多线程是优化处理网络读写解析等,在执行上仍然是单线程,所以不会产生线程安全问题。
2023年2月2日大约 5 分钟