java面试题
文章平均质量分 83
java面试题
Java学习训练营
爱老婆 爱编程!
展开
-
SpringBoot - 自动配置原理
概述上面博文(SpringBoot简介与快速搭建)我们简单的介绍了什么是SpringBoot,以及如何使用SpringBoot,但是我们对于SpringBoot的基本原理并没有介绍,这篇博文我们重点介绍SpringBoot是如何实现的自动配置。依赖管理在我们的pom文件中最核心的依赖就一个:<parent> <groupId>org.springframework.boot</groupId> <artifactId>sp..翻译 2021-05-10 17:14:45 · 278 阅读 · 0 评论 -
java内存模型 - 非常细致的JVM内存模型讲解
内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨经典的JVM内存布局。 JVM运行时数据区 线程独占 每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程共享 所有线程能访问这块内存数据,随虚拟机或者GC而创建和销毁 JD...翻译 2021-05-10 17:12:34 · 3123 阅读 · 0 评论 -
算法 - 6种排序算法
1.冒泡排序(Bubble Sort)import java.util.Arrays;//冒泡排序public class BubbleSort_01 { public static void main(String[] args) { int a[]={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; //记录比较次数 int count=0; //i=0,第一轮比较 for (int i = 0; i < a.length..翻译 2021-05-08 10:43:05 · 142 阅读 · 0 评论 -
SpringCloud - 面试题
1、什么是 Spring Cloud?Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。2、使用 Spring Cloud 有什么优势?使用 Spring Boot 开发分布式微服务时,我们面临以下问题1、与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。2、服务发现-服务发现工..翻译 2021-04-26 16:04:39 · 204 阅读 · 0 评论 -
SpringCloud - 常见面试题
什么是微服务?微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些翻译 2021-04-26 15:53:46 · 357 阅读 · 0 评论 -
SpringCloud - 常见面试题及答案
1.什么是微服务?单个轻量级服务一般为一个单独微服务,微服务讲究的是 专注某个功能的实现,比如登录系统只专注于用户登录方面功能的实现,讲究的是职责单一,开箱即用,可以独立运行。微服务架构系统是一个分布式的系统,按照业务进行划分服务单元模块,解决单个系统的不足,满足越来越复杂的业务需求。马丁福勒(Martin Fowler):就目前而言,对于微服务业界并没有一个统一的、标准的定义。但通常而言,微服务架构是一种架构模式或者说是架构风格,它提倡将单一应用程序划分成一组小的服务。每个服务运行在其独立...翻译 2021-04-26 15:51:19 · 448 阅读 · 0 评论 -
SpringBoot - 开发自定义starter
一、码前必备知识1、SpringBoot starter机制 SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。SpringBoot提供了针对日常企业应用翻译 2021-04-23 16:39:42 · 161 阅读 · 0 评论 -
SpringBoot - 面试题(二)
Q: 什么是spring boot?A: 多年来,随着新功能的增加,spring变得越来越复杂。只需访问页面https://spring.io/projects,我们将看到所有在应用程序中使用的不同功能的spring项目。如果必须启动一个新的spring项目,我们必须添加构建路径或maven依赖项,配置application server,添加spring配置。因此,启动一个新的spring项目需要大量的工作,因为我们目前必须从头开始做所有事情。Spring Boot是这个问题的解决方案。Spring翻译 2021-04-23 16:35:39 · 624 阅读 · 0 评论 -
SpringBoot - 启动流程解析
写在前面:由于该系统是底层系统,以微服务形式对外暴露dubbo服务,所以本流程中SpringBoot不基于jetty或者tomcat等容器启动方式发布服务,而是以执行程序方式启动来发布(参考下图keepRunning方法)。本文以调试一个实际的SpringBoot启动程序为例,参考流程中主要类类图,来分析其启动逻辑和自动化配置原理。总览:上图为SpringBoot启动结构图,我们发现启动流程主要分为三个部分,第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构..翻译 2021-04-23 16:32:21 · 498 阅读 · 0 评论 -
SpringBoot - 面试题 (一)
Spring Boot 是微服务中最好的Java框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力!问题一Spring Boot、Spring MVC 和 Spring 有什么区别?1、SpringSpring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的..翻译 2021-04-23 16:31:00 · 207 阅读 · 0 评论 -
Redis - 问烂了的Redis常见面试题
缓存知识点缓存有哪些类型?缓存是高并发场景下提高热点数据访问性能的一个有效手段,在开发项目时会经常使用到。缓存的类型分为:本地缓存、分布式缓存和多级缓存。本地缓存:本地缓存就是在进程的内存中进行缓存,比如我们的 JVM 堆中,可以用 LRUMap 来实现,也可以使用 Ehcache 这样的工具来实现。本地缓存是内存访问,没有远程交互开销,性能最好,但是受限于单机容量,一般缓存较小且无法扩展。分布式缓存:分布式缓存可以很好得解决这个问题。分布式缓存一般都...翻译 2021-04-23 16:26:30 · 232 阅读 · 0 评论 -
MySQL - 索引优化深入分析执行计划
MySQL索引优化分析为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?卷起袖子就是干!案例分析我们先简单了解一下非关系型数据库和关系型数据库的区别。MongoDB是NoSQL中的一种。NoSQL的全称是Not only SQL,非关系型数据库。它的特点是性能高,扩张性强..翻译 2021-04-23 16:15:32 · 172 阅读 · 0 评论 -
MySQL - 索引知识点总结
什么是索引?在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。(百度百科)索引的目的是提高查找效率,对数据表的值集合进行了排序,并按照一定数据结构进行了存储。本文将从一个案例开始,从索引的数据结构、分类、关键概念及如何使用索引提高查找效率等方面对索引知识进行总结。从一个案例开始现象业务中有个既翻译 2021-04-23 16:05:14 · 231 阅读 · 0 评论 -
Redis - 多线程网络模型全面揭秘
导言在目前的技术选型中,Redis 俨然已经成为了系统高性能缓存方案的事实标准,因此现在 Redis 也成为了后端开发的基本技能树之一,Redis 的底层原理也顺理成章地成为了必须学习的知识。Redis 从本质上来讲是一个网络服务器,而对于一个网络服务器来说,网络模型是它的精华,搞懂了一个网络服务器的网络模型,你也就搞懂了它的本质。本文通过层层递进的方式,介绍了 Redis 网络模型的版本变更历程,剖析了其从单线程进化到多线程的工作原理,此外,还一并分析并解答了 Redis 的网络模型的很多抉择翻译 2021-04-23 16:02:41 · 288 阅读 · 0 评论 -
MySQL - 索引深入理解
Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 Mysql 没有实现索引算法,那么查找 id=7 这个数据,那么只能采取暴力顺序遍历翻译 2021-04-23 16:00:52 · 153 阅读 · 0 评论 -
MySQL - 索引原理分析
常见的面试必备之MySQL索引底层原理分析:MySQL索引的本质 MySQL索引的底层原理 MySQL索引的实战经验面试1)问题:数据库中最常见的慢查询优化方式是什么? 回答:加索引2)问题:为什么加索引能优化慢查询? 回答:因为索引是一种优化查询的数据结构,比如MySQL中的索引是B+树实现的,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,所以能优化查询!3)你知道哪些数据结构可以提高查询速度? 回答:哈希表、完全平衡二叉搜索树、B树、B+树翻译 2021-04-23 15:57:18 · 144 阅读 · 0 评论 -
Spring - 面试题(四)
1. 一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?Version Feature Spring 2.5 发布于 2007 年。这是第一个支持注解的版本。 Spring 3.0 发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。 Spring 4.0 发布于 2013 年。这是第一个完全支持 JAVA8 的版本。 1.2. 什么是 Spring Framework?Spring 是一个开翻译 2021-04-22 19:35:32 · 368 阅读 · 0 评论 -
Spring - 面试题(三)
1 、什么是 Spring框架?Spring框架有哪些主要模块?Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。Spring 框架至今已集成了 20 多个模块。这些模块主要被分如下图所示的核心容器...翻译 2021-04-22 19:34:22 · 166 阅读 · 0 评论 -
Spring - 面试题(二)
Spring 概述1. 什么是Spring?Spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的翻译 2021-04-22 19:33:11 · 373 阅读 · 0 评论 -
Spring - 自动装配Bean的三种方式
spring的自动装配功能的定义:无须在Spring配置文件中描述javaBean之间的依赖关系(如配置<property>、<constructor-arg>)。IOC容器会自动建立javabean之间的关联关系。如果没有采用自动装配的话,手动装配我们通常在配置文件中进行实现:一下代码就是手动装配:? 1 2 3 4 5 6 7 8 9 10 <beansxmln.翻译 2021-04-22 19:23:18 · 402 阅读 · 0 评论 -
Spring - 深究Spring中Bean的生命周期
前言这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了《Spring in action》这本书,书上有对Bean声明周期的大致解释,但是没有代码分析,所以就自己上网寻找资料,一定要把这个Bean生命周期弄明白!网上大部分都是验证的Bean 在面试问的生命周期,其实查阅JDK还有一个完整的Bean生命周期,这同时也验证了书是具有片面性的,最fresh 的资料还是查阅原始JDK!!!一、Bean 的完整生命周期翻译 2021-04-22 19:20:35 · 153 阅读 · 0 评论 -
Spring - 理解Spring的AOP和IOC实现原理
1.AOPAOP(面向切面)是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。AOP为开发者提供了一种描述横切关注点的机制,并能够自动将横切关注点织入到面向对象的软件系统中,从而实现了横切关注点的模块化。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。使用AOP的好处降低模块的耦合度 使系统容易扩展 提高代码复用性AOP的翻译 2021-04-22 17:49:23 · 226 阅读 · 0 评论 -
Spring - BeanFactory深入理解
(现在一般都用ApplicantContext代替BeanFactory)说到Spring框架,人们往往大谈特谈一些似乎高逼格的东西,比如依赖注入,控制反转,面向切面等等。但是却忘记了最基本的一点,Spring的本质是一个bean工厂(beanFactory)或者说bean容器,它按照我们的要求,生产我们需要的各种各样的bean,提供给我们使用。只是在生产bean的过程中,需要解决bean之间的依赖问题,才引入了依赖注入(DI)这种技术。也就是说依赖注入是beanFactory生产bean时为了解决b.翻译 2021-04-22 17:45:17 · 320 阅读 · 0 评论 -
Spring - Spring介绍
一 spring 概述spring 是 一个java应用平台,提供了整合其他基础框架的能力,让java程序员更专注于java应用程序的开发。spring 提供了pojo方式的构建服务应用,能够有效的防止非法入侵pojo,这种开发方式广泛应用于java SE 编程模型和部分的java EE开发。使用spring受益举例:可以通过java方法执行数据库事务,而不用处理操作事物API;使本地java方法成为远程过程,而不必处理远程API;使本地java方法成为管理操作,而不必处理JM.翻译 2021-04-22 17:41:42 · 372 阅读 · 0 评论 -
MySQL - 面试题(三)
文章目录 1、数据库存储引擎 2、InnoDB(B+树) 2、TokuDB( Fractal Tree-节点带数据) 3、MyIASM 4、Memory 5、数据库引擎有哪些 6、InnoDB与MyISAM的区别 7、索引 8、常见索引原则有 9、数据库的三范式是什么 10、第一范式(1st NF - 列都是不可再分) 11、第二范式(2nd NF- 每个表只描述一件事情) 12、第三范式(3rd NF- 不存在对非主键列的传递依赖) 1...翻译 2021-04-21 19:36:42 · 266 阅读 · 0 评论 -
MySQL - 面试题(二)
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一翻译 2021-04-21 19:33:04 · 402 阅读 · 0 评论 -
MySQL - 面试题(一)
1、MySQL 中有哪几种锁?1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。2、MySQL 中有哪些不同的表格?共有 5 种类型的表格:1、MyISAM2、Heap3、Merge4、INNODB5、ISAM3、简述在 MySQL 数据库中翻译 2021-04-21 19:31:07 · 384 阅读 · 0 评论 -
MySQL - 调优(一)
作者:Anwen~链接:https://www.nowcoder.com/discuss/150059?type=0&order=0&pos=8&page=0来源:牛客网为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比如何优化设计数据库时:数据库表、字段的设计,存储引擎 利用好MySQL自身提供的功能,如索引等 横向扩展:MySQL集.翻译 2021-04-21 19:26:04 · 307 阅读 · 0 评论 -
MySQL - 调优
影响mysql的性能因素 业务需求对MySQL的影响(合适合度) 存储定位对MySQL的影响 不适合放进MySQL的数据 二进制多媒体数据 流水队列数据 超大文本数据 需要放进缓存的数据 系统各种配置及规则数据 活跃用户的基本信息数据 活跃用户的个性化定制信息数据 准实时的统计信息数据 其他一些访问频繁但变更较少的数据 Schema设计对系统的性能影响 尽量减少对数据库访问的请求 尽量减少无用数据的查询请求翻译 2021-04-21 19:23:49 · 203 阅读 · 0 评论 -
MySQL - 主从同步延迟的原因及解决办法
一、主从数据库的区别从数据库(Slave)是主数据库的备份,当主数据库(Master)变化时从数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。(1) 主从分工其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行。这样一来的可以大大提高读取的效率。在一般的互联网应用中,经过一些数据调查得出结论,读/写的比例大概在 10:1左右 ,也就是说大量的数据操作是翻译 2021-04-21 19:20:00 · 706 阅读 · 0 评论 -
MySQL - 分库分表
1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。2. mysql proxy:amoeba做mysql集群,利用amoeba。从上层的java程序来讲,不需要知道主服务翻译 2021-04-21 19:17:52 · 146 阅读 · 0 评论 -
MySQL - 数据库分库分表后,我们怎么保证ID全局唯一
读写分离主从复制(数据库读写分离方案,实现高性能数据库集群)的方案去应对,后来又面临了大并发写入的时候,系统数据库采用了分库分表的方案(数据库分库分表方案,优化大量并发写入所带来的性能问题),通过垂直拆分以及水平拆分的方式,将数据分到多个库和多个表中去应对的,即现在是这样的一套分布式存储结构。数据库分库分表那篇也讲到了,使用了分库分表势必会带来和我们之前使用不大相同的问题。今天,我将其中一个和我们开发息息相关的问题提出来进行讲解,也就是我们开发中所使用的的主键的问题。我们知道,以前我们单库的时.翻译 2021-04-21 19:16:17 · 1778 阅读 · 0 评论 -
MySQL - 索引实现原理
什么是索引: 索引是一种高效获取数据的存储结构,例:hash、 二叉、 红黑。 Mysql为什么不用上面三种数据结构而采用B+Tree: 若仅仅是 select * from table where id=45 , 上面三种算法可以轻易实现,但若是select * from table where id<6 , 就不好使了,它们的查找方式就类似于"全表扫描",因为他们的高度是不可控的(如下图)。B+Tree的高度是可控的,mysql通常是3到5层。注意:B+Tree只在最末...翻译 2021-04-21 17:41:23 · 187 阅读 · 0 评论 -
MySQL - MyISAM和InnoDB的区别
MySQL默认采用的是MyISAM。 MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。 InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的,MyISAM并发读写时如果等待队列中既有读请求又有写请求,默认写请求的优先级高,即使读请求先到,所以MyIS翻译 2021-04-21 17:39:42 · 120 阅读 · 0 评论 -
Redis - 什么是 redis 的雪崩和穿透?redis 崩溃之后会怎么样?
了解什么是 redis 的雪崩和穿透?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。面试题剖析缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一翻译 2021-04-19 19:06:42 · 131 阅读 · 0 评论 -
Redis - 面试题集锦(三)
Redis持久化机制Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即翻译 2021-04-19 19:01:58 · 232 阅读 · 0 评论 -
Redis - 面试题集锦(二)
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经翻译 2021-04-19 16:50:25 · 856 阅读 · 0 评论 -
Redis - 面试题集合(一)
Redis支持的数据类型?String字符串:格式: set key valuestring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。Hash(哈希)格式: hmset name key1 value1 key2 value2Redis hash 是一个键值(key=>value)对集合。Redis hash是一个strin...翻译 2021-04-19 16:45:49 · 148 阅读 · 0 评论 -
Redis - 基础
小伙子您好,看你简历上写了你项目里面用到了Redis,你们为啥用Redis?心里忍不住暗骂,这叫啥问题,大家不都是用的这个嘛,但是你不能说出来。认真回答道:帅气迷人的面试官您好,因为传统的关系型数据库如Mysql已经不能适用所有的场景了,比如秒杀的库存扣减,APP首页的访问流量高峰等等,都很容易把数据库打崩,所以引入了缓存中间件,目前市面上比较常用的缓存中间件有 Redis 和 Memcached 不过中和考虑了他们的优缺点,最后选择了Redis。至于更细节的对比朋友们记得查阅Redis 和 M翻译 2021-04-16 15:33:18 · 163 阅读 · 0 评论 -
Redis - Redis分区
分区的概念 分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。 如果只使用一个redis实例时,其中保存了服务器中全部的缓存数据,这样会有很大风险,如果单台redis服务宕机了将会影响到整个服务。解决的方法就是我们可以采用分片/分区的技术,将原来一台服务器维护的整个缓存,现在换为由多台服务器共同维护内存空间。分片的实现说明与分析: 关于redis的安装参照上一篇,默认安装好了redis. 思路:采用在一台主机上实现分片的方式,所以只需要在该主机翻译 2021-04-16 15:30:12 · 447 阅读 · 0 评论