Java虚拟机内存管理知识总结
0、Java 对内存的划分:Java虚拟机规范将物理内存(主内存和CPU中的缓存、寄存器)划分为 程序计数器 、 Java 虚拟机栈 、 本地方法栈 、 Java 堆 、 方法区 五个区域,但并没有规定这些区域的具体实现,在其他地方听到的一些名词(如永久代、元空间等,这些都是方法区的具体实现)可能都
举个栗子看如何做MySQL 内核深度优化
原文:http://www.cnblogs.com/qcloud1001/p/10173013.html?utm_source=tuicool&utm_medium=referralMySQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB
Linux环境搭建Nginx+Tomcat负载均衡集群
Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。由于Tomcat处理静态HTML的能力运不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。Nginx服务器能支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低.通常情况下
Redis的数据结构及应用场景
一. 谈谈对redis的理解,它的应用场景。Redis是一个key-value存储系统,它支持存储的value类型包括string字符串、list链表、set集合、sorted Set有序集合和hash哈希等数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的,支持各种不同方式的排序。为了保证效率,Redis将数据都缓存在内存
分布式架构的演进过程
一个成熟的大型网站架构并不是一开始就设计的非常完美,也不是一开始就具备高性能、高可用、安全性等特性,而是随着用户量的增加,业务功能的扩展逐步完善演变过来的。在这个过程中,开发模式、技术架构等都会发生非常大的变化。而针对不同业务特征的系统,会有各自的侧重点,比如像淘宝这类的网站,要解决的是海量商品搜索、下单、支付等问题;腾讯,要解决的是数亿级别用户的实时消息传输;百度所要解决的是海量数据的搜索。架构
分布式缓存Redis使用心得
一、缓存在系统中用来做什么?1. 少量数据存储,高速读写访问。通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。2. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。Redis3.0以后开始支持集群,实现了半自动化的数据分片,不过需要smart-client的支持。二、从不同的角度来详细介绍redis网络模型
Java面试题:面向对象,类加载器,JDBC, Spring 基础概念
1. 为什么说Java是一门平台无关语言?平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。2. 为什么 Java 不是100%面向对象?Java 不是100%面向对象,因为它包含8个原始数据类型,例如 boolean、byte、char、int、float、double、long、short。它们不是对象。
设计模式“6”大原则!
面向对象设计原则概述对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。 面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计
千万级规模【高性能、高并发】互联网架构经验分享~
架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们 战略上 要重 视 它 , 战术上又 要 藐 视 它 。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?
百亿数据量下,掌握这些Redis技巧你大概就稳住了全场
百亿数据量下,掌握这些Redis技巧你大概就稳住了全场
RabbitMQ的前世今生
关于RabbitMQ 出身:诞生于金融行业的消息队列 语言:Erlang 协议:AMQP(Advanced Message Queuing Protocol 高级消息队列协议) 关键词:内存队列,高可用
MySQL基本知识点梳理和查询优化
目录一、索引相关二、EXPLIAN中有用的信息三、字段类型和编码四、SQL语句总结五、踩坑六、千万大表在线修改七、慢查询日志八、查看sql进程和杀死进程九、一些数据库性能的思考本文主要是总结了工作中一些常用的操作,以及不合理的操作,在对慢查询进行优化时收集的一些有用的资料和信息,本文适合有mysql基础的开发人员。一、索引相关1、索引基数:基数是数据列所包含的不同值的数量。例如,某个数据列包含值1
填坑利器?Redis如何弥补传统MySQL架构的不足。
传统MySQL架构难以满足的现代应用程序需求包括:传统数据库的读/写速度对会话存储等用例不友好;引入新表或修改现有模式非常复杂,这也导致了添加新功能和应用程序会有困难;传统数据库会受到每秒可执行操作的数量和并发连接数的限制,所以在数据库实例增多的情况下,基础架构和维护成本也会增加。Redis和传统数据库结合会产生哪些化学反应呢?首先,如果应用程序的数据是存储在MySQL或其它关系型数据库中,那么R
Java每天5道面试题,跟我走,offer有!(八)
Java每天5道面试题,跟我走,offer有!(八)
当我们输入一条 SQL 查询语句时,发生了什么?
当我们输入一条 SQL 查询语句时,发生了什么?
Java每天10道面试题,跟我走,offer有!(七)
Java每天10道面试题,跟我走,offer有!(七)
Redis分布式锁的实现原理看这篇就够了~
一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson
一文替你全部搞定:MySQL命令。
MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:MySQL常用语句表(或者数据库)的CRUD表数据的CRUD,其中表数据查询使用最多,也更复杂。查询可以按照单表还是多表可以分为:单表SELECT查询和多表的联结查询(INNER JOIN, LEFT JOIN, RIGHT
8 个面试被问烂的 SpringMVC 过程
SpringMVC ,这个应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。Spring MVC 过程先来张图: 代码位置:com.interface21.web.servlet.DispatcherServlet#doService(没错,就是 Spring 1.0 的代