zookeeper部署
本地部署
修改zoo.cfg文件(在conf下)
1 | #配置数据所在位置 |
启动命令
1 | zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd} |
redis是使用的单线程来进行操作的,因为所有的数据都是在内存中的,内存操作特别快。而且单线程避免了多线程切换性能损耗问题
redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,一次放到文件事件分派器,事件分派器分发给事件处理器。Redis 内部使用文件事件处理器 file event handler
,这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中,事件分派器根据 socket 上的事件类型来选择对应的事件处理器进行处理
文件事件处理器的结构包含 4 个部分:
多个 socket 可能会并发产生不同的操作,每个操作对应不同的文件事件,但是 IO 多路复用程序会监听多个 socket,会将产生事件的 socket 放入队列中排队,事件分派器每次从队列中取出一个 socket,根据 socket 的事件类型交给对应的事件处理器进行处理。
redis在6.0之后开始引入多线程,因为读写网络的 Read/Write 系统调用在 Redis 执行期间占用了大部分 CPU 时间,如果把网络读写做成多线程的方式对性能会有很大提升。
Redis 的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程
域名系统(Domaon Name System)DNS来进行域名解析,也就是通过域名查询主机ip的操作。
首先浏览器会先检查缓存中有没有这个域名对应的解析过的 IP 地址。如果缓存中有,这个解析过程就将结束。域名的缓存时间限制可以通过 TTL
属性来设置(这个是浏览器行为,查的浏览器缓存,查看是否解析过该域名)
如果浏览器缓存中没有,会检查操作系统中是否有这个域名对应的 DNS
解析结果,在 Windows 中可以通过 C:\Windows\System32\drivers\etc\hosts
文件来设置,在 Linux 中这个配置文件是 /etc/hosts
,修改这个文件同样可以配置域名解析的 IP 结果