1、Redis到底有多快
根据官方数据,Redis 的 QPS 可以达到约 100000(每秒请求数)。
2、基于内存实现
这个不用多说,Redis是一个基于内存操作的缓存系统,所以请求处理很快。
3、高效的数据结构
Redis一共5种数据类型,String、List、Hash、Set、SortedSet。
不同的数据类型底层使用了一种或者多种数据结构来支撑,目的就是为了追求更快的速度。
4、单线程模型
Redis 的单线程指的是 Redis 的网络 IO (6.x 版本后网络 IO 使用多线程)以及键值对指令读写是由一个线程来执行的。 对于 Redis 的持久化、集群数据同步、异步删除等都是其他线程执行。
Redis为什么采用单线程模型?
因为 Redis 是基于内存的操作,CPU 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方案了。
单线程有什么好处?
不会因为线程创建导致的性能消耗;
避免上下文切换引起的 CPU 消耗,没有多线程切换的开销;
避免了线程之间的竞争问题,比如添加锁、释放锁、死锁等,不需要考虑各种锁问题。
代码更清晰,处理逻辑简单。
5、I/O多路复用模型
Redis 采用 I/O 多路复用技术,并发处理连接,采用了 epoll + 自己实现的简单的事件框架。