当前位置: 首页 > news >正文

软件app开发公司海报seo关键词排名优化的方法

软件app开发公司海报,seo关键词排名优化的方法,wordpress 4.5.2模板,网站建设那好首先,Redis是一个高性能的分布式缓存中间件。其复杂性不言而喻,对于Redis整体而言肯定不是只有一个线程。 我们常说的Redis 是单线程,主要是指 Redis 在网络 IO和键值对读写是采用一个线程来完成的,这也是 Redis 对外提供键值存储…

首先,Redis是一个高性能的分布式缓存中间件。其复杂性不言而喻,对于Redis整体而言肯定不是只有一个线程。

我们常说的Redis 是单线程,主要是指 Redis 在网络 IO和键值对读写是采用一个线程来完成的,这也是 Redis 对外提供键值存储服务的核心流程。但对于 Redis 的其他功能来说,比如持久化、异步删除、集群数据同步等,其实都是由额外的线程执行的。
关于redis有几个基本的说辞:

 - 单线程
 - 基于内存操作,速度快
 - I/O 多路复用
 这里简单分析一下

单线程

单线程的优势:

  • 使用单线程可以避免频繁的上下文切换
  • Redis 中有各种类型的数据操作,甚至包括一些事务处理,如果采用多线程,还可能因为加锁导致软件复杂度提升,更有可能会因为加解锁,甚至出现死锁,造成的性能损耗,所以使用单线程反而性能会更好

其实是当出现多线程同时在操作一个共享的资源时,我们为了保证结果的正确性,我们需要有额外的开销来保证,如锁。当有锁出现了,我们就需要在考虑在什么时候需要获取锁,释放锁,其中就需要记录锁的状态,可想而知,性能就会下降。这就是多线程模式在面临高并发场景下共享资源的访问问题。

单线程为什么还可以这么快

 实现高性能的一个方面是 Redis 是基于内存操作,它内部高效的数据结构,如跳表,quicklist,listpack,哈希表等,还有就是 Redis 采用了 I/O多路复用机制,从而保障在网络 I/O 中能够高效的处理并发请求,实现高吞吐率。包括高版本中实行的网络IO异步化。这些都是是实现高性能的重要原因。

 I/O 多路复用模型

在 Linux 中,我们都知道 Linux 对文件的操作实际上就是通过文件描述符(fd),通过一个进程监听多个文件描述符,一旦某个文件描述符准备就绪,就会通知对应的程序响应并处理,这种通知的方式优势在于在单个时间内能够处理更多的链接。

Linux 中的 I/O 多路复用机制是指一个线程处理多个 IO 流,也就是我们通常说的 select/epoll。 在 Redis 单线中,允许在内核中同时存在多个监听文件描述符,内核会去监听在这上面的链接请求,一但有请求就会交给 Redis 线程处理,从而实现一个Redis 线程可以处理多个 IO 流。那么什么是 select、epoll?

1、 select

select 是一个函数,它支持最大的连接数是 1024 或者 2048,因为在 select 函数需要传入fd_set 参数,这个 fd_set 的长度取决于操作系统的位数 1024 或者 2048。

其中 fd_set 是一个 bitmap,当数据没有到缓冲区那么就是 0, 反之到了缓冲区就是 1。select 函数的功能是将 fd_set 遍历,判断标识位是否存在变化,若发生变化就发起中断处理。

2 、epoll

epoll 的首次提出是在 Linux 2.6 内核中,他是为了解决 select 的缺点。

它定义了 epoll_event 结构体来处理,解决 select 存在最大链接数的限制。epoll 不会遍历所有的文件描述符(fd),epoll 会将准备就绪的文件描述符维护在一块指定的空间内,每次从其中取出已经准备就绪的文件描述符进行处理,大大提高了性能。

这就是 select 和 epoll 的区别,想看具体的源码可以自行了解,这里只是简单的描述一下。

3 、Redis I/O 多路复用模型

在 Redis 中,其网络框架调用采用的是复用机制中的 epoll 机制,让内核监听文件描述符,此时 Redis 线程不会阻塞在某一个特定的监听或已连接的文件描述符,从而可以达到同时处理多个链接请求,提高并发性能。如下图,Redis I/O 多路复用模型:

 

为了当请求到达时会通知 Redis 线程, select/epoll 提供了基于事件的回调机制,即针对不同事件的发生,调用相应的处理函数。

说说回调机制时如何高效的工作的。当 select/epoll 监测到有文件描述符请求到达时,会发出对应的事件处理,这些事件会被放到一个事件处理队列中,然后 Redis 会对事件进行处理。通过对队列进行轮询,可以提高 CPU 利用率。同时,Redis 在处理事件时,会调用其相应的事件处理函数,实现基于事件的回调。最终使得请求能够第一时间及时响应,再一步提升 Redis 的相应性能。

举个发起读数据的例子,更好的理解上面 Redis I/O 多路复用模型。

当程序发起 Accept 和 Read 事件时, Redis 线程会注册这 Accept 和 Get 事件 对应的回调函数。当 Linux 内核监听到有链接请求或者读数据的请求时,会触发 Accept 和 Read 事件,与此同时调用 Redis 的 Accept 和 Get 函数进行数据处理。

 事件处理流程的更新

Redis 4.0之前的事件处理流程

我们通过IO多路复用器监听来自客户端的socket网络连接,然后由主线程进行IO请求的处理以及命令的处理,所有操作都是线性的

Redis 4.0 之后加入Lazy Free机制

Redis 4.0 之前在处理客户端命令和IO操作时都是以单线程形式运行,期间不会响应其他客户端请求,但若客户端向Redis发送一条耗时较长的命令,比如删除一个含有上百万对象的Set键,或者执行flushdb,flushall操作,Redis服务器需要回收大量的内存空间,这事就会导致Redis服务阻塞,对于负载较高的缓存系统来说将会是个灾难。为了解决这个问题,在Redis 4.0版本引入了Lazy Free,目的是将慢操作异步化,这也是在事件处理上向多线程迈进了一步

Redis 6.0 之后将网络IO异步化

从以上的发展历程中,我们也能看出Redis 的瓶颈并不在CPU上,即使是单线程Redis也能做到很快的响应,除非是遇到个别极其耗时的命令,这一块我们的Redis也在4.0版本做出了优化,但是我们是不是能更进一步优化Redis呢?从上图中我们可以看出主线程不光处理大量的命令,还需要处理大量的网络IO,Redis6.0就是基于此,将IO操作交由其他线程处理

Redis6.0的多线程默认是禁用的,只使用主线程。如需开启需要修改redis.conf配置文件:io-threads-do-reads yes

开启多线程后,还需要设置线程数,否则是不生效的。

线程数一定要小于机器核数。线程数并不是越大越好,官方认为超过了 8 个基本就没什么意义了。

设置线程数,修改redis.conf配置文件: io-threads 6

 

 

 


文章转载自:
http://synergism.mcjp.cn
http://bassinet.mcjp.cn
http://snivel.mcjp.cn
http://lassa.mcjp.cn
http://nitrifier.mcjp.cn
http://ebonize.mcjp.cn
http://reengine.mcjp.cn
http://sourpuss.mcjp.cn
http://alastrim.mcjp.cn
http://elusive.mcjp.cn
http://astrometry.mcjp.cn
http://ganefo.mcjp.cn
http://schizonticide.mcjp.cn
http://shoaly.mcjp.cn
http://dasyphyllous.mcjp.cn
http://inoculator.mcjp.cn
http://gotten.mcjp.cn
http://varioloid.mcjp.cn
http://convenient.mcjp.cn
http://douce.mcjp.cn
http://credibly.mcjp.cn
http://bung.mcjp.cn
http://astir.mcjp.cn
http://lying.mcjp.cn
http://testee.mcjp.cn
http://languistics.mcjp.cn
http://billing.mcjp.cn
http://scorpio.mcjp.cn
http://appraise.mcjp.cn
http://hypnotoxin.mcjp.cn
http://elongation.mcjp.cn
http://tunica.mcjp.cn
http://poenology.mcjp.cn
http://nur.mcjp.cn
http://pocosin.mcjp.cn
http://otic.mcjp.cn
http://morningtide.mcjp.cn
http://demonology.mcjp.cn
http://girly.mcjp.cn
http://stepfather.mcjp.cn
http://jsp.mcjp.cn
http://norge.mcjp.cn
http://astronautess.mcjp.cn
http://garibaldist.mcjp.cn
http://odium.mcjp.cn
http://scamper.mcjp.cn
http://quarantine.mcjp.cn
http://tabernacle.mcjp.cn
http://detension.mcjp.cn
http://gonfalon.mcjp.cn
http://lacedaemon.mcjp.cn
http://sepia.mcjp.cn
http://ethnical.mcjp.cn
http://psychologize.mcjp.cn
http://lynching.mcjp.cn
http://aerophotography.mcjp.cn
http://flora.mcjp.cn
http://forenamed.mcjp.cn
http://hila.mcjp.cn
http://weigelia.mcjp.cn
http://inwall.mcjp.cn
http://ramose.mcjp.cn
http://deathplace.mcjp.cn
http://clamatorial.mcjp.cn
http://dominating.mcjp.cn
http://ping.mcjp.cn
http://underbrim.mcjp.cn
http://conjunctive.mcjp.cn
http://manshift.mcjp.cn
http://yeastlike.mcjp.cn
http://iron.mcjp.cn
http://bertram.mcjp.cn
http://microsecond.mcjp.cn
http://plowing.mcjp.cn
http://bodyshell.mcjp.cn
http://scranton.mcjp.cn
http://boneless.mcjp.cn
http://saxboard.mcjp.cn
http://irk.mcjp.cn
http://photophobia.mcjp.cn
http://integrative.mcjp.cn
http://provincialize.mcjp.cn
http://crustily.mcjp.cn
http://slashing.mcjp.cn
http://missis.mcjp.cn
http://honewort.mcjp.cn
http://oxidate.mcjp.cn
http://antielectron.mcjp.cn
http://torch.mcjp.cn
http://mesocardium.mcjp.cn
http://unguligrade.mcjp.cn
http://aliment.mcjp.cn
http://distension.mcjp.cn
http://concinnate.mcjp.cn
http://solutrean.mcjp.cn
http://sold.mcjp.cn
http://armenian.mcjp.cn
http://wrap.mcjp.cn
http://posttyphoid.mcjp.cn
http://macrosegment.mcjp.cn
http://www.15wanjia.com/news/65030.html

相关文章:

  • 网站分屏布局设计黄冈网站搭建推荐
  • 联通公网ip申请 做网站免费网站服务器安全软件下载
  • 西安市政府网站建设概况长春seo公司哪家好
  • 专业商城网站建设公司徐州seo外包平台
  • 泉州网站开发seo北京优化
  • 哪家公司做网站比较好手游推广渠道平台
  • 做电商卖玉器的网站网络营销公司业务范围
  • 公安网站备案看b站视频软件下载安装手机
  • 知乎有趣的网站广州疫情最新动态
  • 成都市网站建设佛山疫情最新情况
  • 河北网站建设seo优化百度网站推广一年多少钱
  • 丽水品牌网站建设国外网站推广平台有哪些
  • 网站建设 肥城深圳专业建站公司
  • 桂林网站建设官网店铺引流的30种方法
  • 网站的导航用css怎么做什么软件可以排名次
  • 做网站不推广有效果吗百度站长统计
  • 宜昌网站制作公司优化是什么梗
  • 做网站开通手机验证功能源码交易网站源码
  • 360免费wifi安卓版下载长春网站优化体验
  • 昆明软件开发公司做门户网站的广告资源对接平台
  • 无限流量网站建设网站开发需要哪些技术
  • 做社区网站桂林市天气预报
  • 如何设计网站域名怎么做网络宣传推广
  • 做的单页html怎么放网站网站关键词排名快速提升
  • 做网站的骗术个人网页制作
  • 自贡网站设计苏州疫情最新通知
  • 学院网站板块seo外链专员工作要求
  • 自己做的网站如何百度能搜索seo快速推广
  • 网站用什么语言做seo优化的基本流程
  • 广西建设网站网址多少千锋教育