自学内容网 自学内容网

redis数据结构和内部编码及单线程架构

 博主主页: 码农派大星.

    数据结构专栏:Java数据结构

 数据库专栏:数据库

JavaEE专栏:JavaEE

软件测试专栏:软件测试

关注博主带你了解更多知识

1. 数据结构和内部编码

 

Redis会在合适的场景选择合适的内部编码 

我们可以通过objectencoding命令查询内部编码 :

2. 单线程架构

Redis 使⽤了单线程架构来实现⾼性能的内存数据库服务

当好几个客户端,也相当于"并发"发起请求时,这时就意味着是否redis服务器存在线程安全问题呢?其实是不会发生线程安全问题的,redis服务器是单线程模型,保证收到的多个请求会串行执行,多个请求同时到达redis服务器,也是要在队列中排队,再等待redis服务器一个一个取出里面的命令再执行,微观上讲,redis服务器是串行/顺序执行多个命令的

redis能够使用单线程模型,原因主要在于redis的核心业务逻辑,都是短平快的,不会太消耗cpu资源,不太吃多核

redis虽然是单线程,但为什么他会这么快效率高呢? 

1. redis访问内存,数据库则是访问硬盘

2. redis核心功能比数据库核心功能简单

3. 单线程模型,避免了一些不必要的线程竞争开销

redis每个操作都是短平快的,就是简单操作一下内存数据,不是特别消耗cpu

资源

4.处理网络IO的时候,使用了epoll这样的IO多路复用机制(一个线程处理多个socket)


原文地址:https://blog.csdn.net/jj666mhhh/article/details/144347887

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!