努力才是唯一的入场券
处理海量数据问题的6类算法思想
首先直接进入正题,40亿QQ号如何设计算法去重,相同的QQ号码仅保留一个,内存限制为1个G。 (腾讯的QQ号都是4字节正整数,所以QQ号码的个数是43亿左右,理论值2^32-1个,又因为是无符号的,翻倍了一下,所以43亿左右)
性能:使用有限的资源在有限的时间内完成工作。 最主要的衡量因素就是时间,所以很多衡量指标,都可以把时间作为横轴。
spring一般指的是一个全家桶。
因为我之前已经下载过maven和idea相关软件与配置。 这里可以提供查找自己电脑上是否已经有maven。
整个项目的基石是Spring。
rabbitmq是spring一个公司的,所以很多公司 企业选择用rabbitmq。
消息队列协议、持久化、分发策略等
Message Queue(消息队列),在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。 就是两个子系统之间进行通信,有两种选择,第一种是直接远程调用,第二种是借助第三方完成通信。 发送方称为生产者,接收方称为接受者。
并行指两个或者多个事件同一时刻发生,并发是两个或者多个事件在同一时间间隔发生; 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件(如单核CPU轮转时间片)
并行指两个或者多个事件同一时刻发生,并发是两个或者多个事件在同一时间间隔发生; 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件(如单核CPU轮转时间片)
JUC就是工具类,java.util.concurent的缩写。用来开发并发编程的工具包。 JUC是一个处理线程的工具包,JDK1.5开始出现的。
概念:对象的容器,定义了对多个对象进行操作的常用方法。可以实现数组的功能。
概念:对象的容器,定义了对多个对象进行操作的常用方法。可以实现数组的功能。
Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。
服务器宕机的问题排查
高并发、高性能、高可用 高可用的介绍:全年的时间-不可服用的时长除以全年时长的比例。 业界的目标,五个9,99.999.就是全年宕机低于5.25分钟。
这个类似继承的意思。加速配置的一个东西。 服务器的配置比较独立一些,但配置并不是这么少,还有一些其他的。
过期的数据真的删除了吗? 过期数据是指曾经有效的数据,并不是立马被删除的。
什么是持久化? 利用永久性的存储介质进行保存,特定的时间将保存的数据进行恢复。 持久化方式:保存分为快照和日志。注意日志保存的是整个操作的过程。
如果想起多台redis的服务,那么就需要通过这样来启动。
编程语言中的数据如任何和redis联动,如果是java语言,那么就可以使用Jedis工具,同时springdata redis也可以使用,lettuce也可以使用。
key的基本通用操作:删除 获取 查询是否存在及获取类型
现在数据类型五种基本的已经学完了,现在开始应用一个简单的业务场景。
新的存储需求:类似排行榜:就是需要有利于数据的展示,根据一些自身特征进行排序的方式。
Redis学习5:Set基本操作、拓展操作、业务场景等
注意点:对存储空间的顺序进行分析!
首先可以理解成一个redis里面有一个小的redis。同时要注意引入了一个field的名字。
本系列文章是根据黑马程序员视频的学习笔记进行学习
Remote dictionary server c语言开发的一个开源的高性能键值对Key-value的数据库。
消息队列(Message Queue,简称 MQ)。是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统
ip地址的分类: 1、ipv4、ipv6 127.0.0.1:4个字节组成,0-255,42亿;30亿都在北美,亚洲就只有4亿 2011年就用尽了。
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
面试 理解底层的实现原理:字节码等等 中高级程序员的必备技能
首先要明白设计模式到底是什么,设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途和具体情况我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。
String属于引用数据类型,由于被final修饰,所以String是不可变的,JVM使用字符串池来存储所有的字符串对象。
面向对象是一种万物皆对象的编程思想,任何物体都可以归为一类事物,而一个个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动的。
OkHttp是一个优秀的网络请求框架,主要介绍介绍OkHttp的Get请求、Post请求、上传下载文件、 上传下载图片等功能。
开发项目过程中,对于手机屏幕截图,需要对获取到的截图的任意部分进行区域颜色对比度的识别操作,由此判定任意指定区域是否满足某对比度基本标准,但是该功能在网上任何地方都没有找到过Java方面的代码,于是根据RGB转换测试的原理:即获取每个像素点的RGB,通过RGB对比度定义公式进行像素点的集合换取。
正确理解“访问请求”、“URI”、“URL”、“请求参数”的概念
Swagger 是一个规范和完整的框架,广泛用于生成、描述、调用和可视化 RESTful 风格的 Web服务。总体目标是使客户端和文件系统作为服务器以相同速度更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。通俗一点的来说,就是在项目中加入Swagger的相关配置,就可以生成项目全部接口文档方便前后端开发进行联动。
业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。 好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。 非常适合用来做以数据为中心的配置文件
Spring Boot应用打包之后,生成一个Fat jar,包含了应用依赖的jar包和Spring Boot loader相关的类。 Fat jar的启动Main函数是JarLauncher,其作用是创建一个LaunchedURLClassLoader来加载/lib下面的jar,并以一个新线程启动应用的Main函数。
在Spring中,如果要引入组件,需要写以下bean.xml配置文件。
依赖管理:声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。(依赖传递性原则) 依赖管理(在入门的项目中使用下面这一段代码即可,starter是一组开发依赖的集合)
引入开发必备神器ApiPost工具,一款http请求工具,并实现SpringWeb的简单接口实现。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
本周在部署项目到虚拟机时,想使用WinSCP拉一个比较大的文件压缩包到虚拟机中,但是在虚拟机创建好之后,使用终端软件连接不上虚拟机,提示连接超时或拒绝连接。
注意8088常用在最小模式下。另外8位数据信号是指同时传输8bit二进制码,但是在内部一定是16位二进制码同时处理的。传输是指当如果要传输一个字,即两个字节,16bit出去的时候,要传输两次才可以传输出去。