6.Redis为什么会比MySQL快?

分类栏目:Redis

资讯

1.Redis是基于内存存储的,Mysql是基于磁盘的
 
2.Redis存储的是key-value格式的数据,时间复杂度是O(1),常数阶.而mysql引擎的底层实现是B+Tree,时间复杂度是O(logn),对数阶.Redis会比Mysql快一点.
 
3.Mysql数据存储是存储在表中,查找数据要先对表进行全家扫描或者根据所以查询.这涉及到磁盘的查找.磁盘查找如果是按条件查找可能会快点,但是顺序查找就比较慢;而Redis不用这么麻烦,本身就是存储在内容中,会根据数据在内存中的位置直接查找.
 
4.Redis是单线程的多路复用IO,单线程避免了线程切换的开销,而多路复用IO避免了IO等待的开销,在多核处理器下提高处理器的使用效率,可以对数据进行分区,然后每个处理器处理不同的数据.
 
 

IO多路复用:

IO多路复用就是一个线程或者一个进程同时监视多个文件描述符,一旦某个或某几个文件描述符准备就绪(读或写),就通知程序进行相应的读写操作。所以,这里的多路是指由多个网络连接,即多个客户端同时请求的情况;复用是指同一个线程来监视所有网络请求,一旦某个或某几个连接读写准备就绪,则通知应用程序经行读写。