首页
学习
活动
专区
工具
TVP
发布

我是攻城师

专栏作者
492
文章
949715
阅读量
119
订阅数
为什么单线程Redis性能也很出色
高性能的服务器,不一定是多线程实现的,也就是说多线程不一定比单线程效率高,这得分具体的情况。以redis为例,核心处理请求的线程只有一个,所以我们常常理解其仅仅只有一个线程,但准确来说其实并不是单线程的,比如日志的备份需要单独的fork一个进程或者线程去做备份等,那么redis何来单线程还能达到如此10万+的qps呢?其实这取决于具体的实现,redis采用了基于高性能Reactor的IO多路复用的模式+内存数据结构+单线程处理网络请求这几块,决定了其性能高的原因。
我是攻城师
2019-03-06
8420
关于Java的BIO,NIO和AIO的演进
Java里面的IO模型种类较多,主要包括BIO,NIO和AIO,每个IO模型都有不一样的地方,那么这些IO模型是如何演变呢,底层的原理又是怎样的呢? 本文我们就来聊聊。
我是攻城师
2018-12-17
9570
IO设计模式之Reactor和Proactor
上面文章中,我们提到不同的操作系统实现的io策略可能不一样,即使是同一个操作系统也可能存在多重io策略,常见如linux上的select,poll,epoll,面对这么多不同类型的io接口,这里需要一层抽象api来完成,所以就演变出来两种高性能的io的设计模式,分别是Reactor(同步IO)和Proactor(异步IO)。
我是攻城师
2018-12-17
3.1K1
关于线程死锁问题
死锁是多线程编程里面非常常见的一个问题,作为一个中高级开发者是必须掌握的内容,今天我们来学习一下死锁相关的知识。
我是攻城师
2018-07-23
6990
给centos重新安装yum的base-repo源
有时候,假如自己的centos的系统yum源坏了,是不是感觉很不爽,没有了yum功能,就感觉有点像地铁线故障了,交通变得异常缓慢,那么如何才能修复损坏的yum源呢? 在这里介绍两种方式 方式一:使用国
我是攻城师
2018-05-14
4.9K0
Spark如何在一个SparkContext中提交多个任务
在使用spark处理数据的时候,大多数都是提交一个job执行,然后job内部会根据具体的任务,生成task任务,运行在多个进程中,比如读取的HDFS文件的数据,spark会加载所有的数据,然后根据block个数生成task数目,多个task运行中不同的进程中,是并行的,如果在同一个进程中一个JVM里面有多个task,那么多个task也可以并行,这是常见的使用方式。 考虑下面一种场景,在HDFS上某个目录下面有10个文件,我想要同时并行的去统计每个文件的数量,应该怎么做? 其实spark是支持在一个spark
我是攻城师
2018-05-14
3.1K0
你选的不是专业,而是阶级
我四年前选的不是专业,而是阶级。 我想说,对的,你的收入不取决于你的能力,而取决于社会对你的需求,而现在就是互联网最好的年代。 并且我大胆的预测,编程能力也会和英语一样,以后是学生的基本技能。 现在一线互联网企业,在985高校招聘cs相关专业应届毕业生,一般白菜打包价都在16*16以上。想一想多少专业,混到顶尖前5%,工作十年也还达不到这个数。所以说,当初选了专业,几乎真就是选了阶级。 废话说完,就像网游打怪升级一样,我这个摸打滚爬了6年多的老鸟来分享下自认为正确的程序员练级路线。 先说目标 除去自主创业,
我是攻城师
2018-05-14
8130
Spring-Boot1.4.0项目部署问题小记
使用最新版的Spring-Boot1.4.0开发完项目后,部署到Linux机器上,其JDK版本是JDK7,启动报错: org/eclipse/jetty/webapp/WebAppContext : Unsupported major.minor version 52.0 由于在spring-boot的pom文件里面使用了jetty依赖: <dependency> <groupId>org.springframework.boot</groupId> <art
我是攻城师
2018-05-14
6160
Java如何调用Linux命令
由于有不少java代码,格式可能在手机上显示比较乱,可以点击最下面阅读原文查看比较整洁的格式 (方式一)适合Java调用本地的Liunx无须任何依赖包 Java代码 /*** * 第一种方法,仅仅执行命令无须关注返回结果 * @throws Exception */ public static void exeCmd() throws Exception{ Runtime r = Runtime.getRuntime(); //执行linux命令,不关心返回结果,此
我是攻城师
2018-05-14
5.4K0
Linux 25周年:专访Linux之父Linus Torvalds
  英文原文:Linux at 25: Q&A With Linus Torvalds   1991 年,22 岁的 Linus Torvalds 一边在芬兰赫尔辛基大学学习计算机,一边设计了 Linux 的系统内核。之后,Linux 迅速发展为一个可以在智能手机、服务器等各种平台上运行的功能全面的开源操作系统。在 Linux 系统诞生 25 周年之际,Linux 之父 Linus Torvalds 在采访中回忆了这四分之一个世纪以来他和 Linux 的故事。   记者:现在你比二十五年前要有更丰富的编程经
我是攻城师
2018-05-14
1.5K0
使用shell分页读取600万+的MySQL数据脚本
shell-mysql (1)脚本背景: 由于要在Linux上,远程读取mysql的表的数据,然后做一定清洗后,把数据上传至Hadoop集群中,使用Java写吧,感觉太麻烦了,得在Win上开发好,还得打成jar包, 上传到Linux上,如果那里出了问题,还得重复这样,非常不方便,那就用shell写一个吧,也不需要什么jdbc驱动包,只需要在Linux上装个MySQL的 客户端即可,用一行yum命令即可搞定,所以就花了点时间,封装了一个小脚本 (2)功能介绍: 直接在Linux下使用shell脚本远
我是攻城师
2018-05-11
1.8K0
Solr搜索问题笔记(一)
笔记三个小问题: (1):使用solrj添加索引时,主要有两种方法, 第一种是直接使用solrinputDoucument的方法添加。 第二种是面向对象的形式将一份索引映射成一个Bean对象封装。 当使用第二种时,需要注意一个问题,如果一个对象里,有基本类型int,float,long,double等,那么建议使用其包装类型,why? 因为基本类型,在类实例化时候,是会初始化赋值的,这样一来,无论你添加的某条数据(Document)里,有没有这个field,那么它都会生成一个值为初始化的fi
我是攻城师
2018-05-11
8330
玩转大数据系列之Apache Pig高级技能之函数编程(六)
已总结Pig系列的学习文档,点击末尾处,阅读原文即可查看所有,希望对大家有用,感谢关注! 在Hadoop的生态系统中,如果我们要离线的分析海量的数据,大多数人都会选择Apache Hive或Apache Pig,在国内总体来说,Hive使用的人群占比比较高, 而Pig使用的人相对来说,则少的多,这并不是因为Pig不成熟,不稳定,而是因为Hive提供了类数据库SQL的查询语句,使得大多人上手Hive非常容易,相反而Pig则提供了类Linux shell的脚本语法,这使得大多数人不喜欢使用。 如果在编程界
我是攻城师
2018-05-11
7880
支撑起整个互联网时代的 7 款开源软件
开源软件现在成为整个互联网时代的支撑技术,你可能已经无法离开由开源软件构建起来的网络世界了。下面我们就来看看一些最重要的开源技术。 为互联网而生的操作系统linux Linux是一款免费的操作系统,诞生于1991年,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。 它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳 定的多用户网络操作系统。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受
我是攻城师
2018-05-11
9760
没有更多了
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档