Redis 面试题


Redis面试题Redis是什么Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。Redis作为一个内存数据库。 性能优秀,数据在内存中

高性能实践篇


高性能库表设计范式和反范式范式范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出低效的库表结构。目前关系数据库有六种范式:第一范式(1NF)、第二

深入理解MySQL基础篇


MySQL体系结构与存储引擎MySQL体系结构先看 MySQL 数据库的体系结构,如下图所示。MySQL体系结构由ClientConnectors层、MySQLServer层及存储引擎层组成。ClientConnectors层负责处理客户端的连接请求,与客户端创建连接。目前 MySQL 几乎支持所有

MySQL 常见知识点总结


MySQL架构逻辑架构图和执行流程:并发控制表级锁: MySQL中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM和 InnoDB引擎都支持表级锁。行级锁: MySQL中锁定 粒度最小

MySQL 面试题


MySQL面试题如何设计一个关系型数据库?首先划分为两大部分,一个存储部分,类似文件系统将数据持久化到硬盘上,另一个是程序实例部分,创建模块:存储管理,缓存机制,SQL解析,日志管理,权限划分,容灾机制**,索引管理,锁模块**。数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列

Linux 面试题


Linux面试题如今程序员生产的代码99%都部署在linux环境下,代码发现缺陷,程序员的第一反应是到 Linux 上拉日志下来看。程序员不是运维,不需要掌握非常多复杂命令。推荐终端工具SecureCRTxshell常用命令(重要)ls/ll、cd、mkdir、rm-rf、cp、mv、ps -ef

设计模式


有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文:面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码的第一步,这就不需要多说了吧。职责单一原则。每个类都应该只有一个单一的功能,并且该功能应该由这个类完全封装起来。对修改关闭,对扩展开放。对修改关闭是说,我们辛辛苦苦加班写出来

JVM 面试题


JVM 的主要组成部分及其作用类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)组件的作用: 首先通过类加载器(ClassLoader)会加载类文件到内存,Class load

多线程面试题


多线程面试题临界资源临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量,数组,缓冲区等。诸进程间采取互斥方式,实现对这种资源的共享。临界区:每个进程中访问临界资源的那段代码称为临界区(critic

并发基础


并发基础JMM(Java 内存模型)原子性(Atomictiy)原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。可见性(Visibility)可见性是指当一个线程修改了某一个共享变量的值时,其他线程能否立即知道这个修改。缓存优化,硬件优化,指令