Redis

1、redis是一个基于key,val的非关系型数据库

2、基于内存操作,所以读取特别快

3、执行命令是单线程的,避免了CPU上下文切换产生的耗时,且保证了线程安全。

4、在I/O层面又是多线程的,即多路复用机制

5、有丰富的数据类型,如String、List、Hash、Set、Zset

6、可以用来做缓存,减轻DB端的一个压力

问题一:Redis是单线程的,为什么还会这么快?

首先,Redis是基于内存操作的,相较于计算机存储模型来看,内存操作的耗时是远远小于硬盘操作的。而基于内存操作,CPU在没有线程上下文切换、线程锁的阻塞、获取和等待时,效率是最高的,也就是单线程充分发挥了CPU对内存的一个读取效率;同时Redis还采用了多路复用机制,即Redis的读取是多线程的,CPU命令的执行是单线程的,从读取层面上,这种机制也提高了Redis的效率。