1.1 完全基于内存
Redis完全基于内存,大部分都是简单的存取操作,大量的时间花费在IO上。Redis绝大部分操作时间复杂度为O(1),所以速度十分快。
1.2 非阻塞IO、多路IO复用模型
Redis采用多路IO复用模型,在内部采用epoll代理。多路是指多个网络连接,IO复用是指复用同一个线程。epoll会同时监察多个流的IO事件,在空闲时,当前线程进入阻塞,如果有IO事件时,线程会被唤醒,并且epoll会通知线程是哪个流发生了IO事件,然后按照顺序处理,减少了网络IO的时间消耗,避免了大量的无用操作。
1.3 单线程
对于单线程来讲,不存在上下文切换问题,也不用考虑锁的问题,不存在加锁释放锁的操作,没有因为可能出现死锁而导致的性能消耗。虽然单线程无法发挥出多个CPU的性能,但是可以在单机开启多个Redis实例解决这个问题。reids的单线程是指处理网络请求只有一个线程。
1.4 底层类似于hashtable操作,对key进行hash排序(出现hash碰撞概率比较低)
redis 效率分析
最新推荐文章于 2025-03-10 13:12:37 发布