终于有阿里p8进行了大汇总(Redis+JVM+MySQL+Spring)还有面试题解全在这里了!

news2024/11/29 7:22:21

Redis特性

Redis是一直基于键值对的NoSQL数据库;
Redis支持5种主要数据结构:string、hash、list、set、zset以及bitmaps、hyperLoglog、GEO等特化的数据结构;
Redis是内存数据库,因此它有足够好的读写性能;
Redis支持持久化,redis支持AOF和RDB两种持久化方式,确保了内存中的数据不会“丢失”;
Redis的sentinel和复制功能保证了Redis的高可用;
Redis支持key维度的数据过期;
Redis支持发布订阅、“事务”、pipeline、Lua脚本等附加功能。

使用场景

Redis 适合做什么

缓存,Redis本身是内存数据库,注定有极高的读写速度和吞吐,加上数据过期功能以及完善的数据淘汰策略使得Redis拥有与生俱来的缓存潜质。
排行榜系统,Redis提供了zset、list等复杂数据结构,以及极佳的性能,可以做出时间、数量等各种维度的排行榜系统。
计数器系统,对于视频(音乐)网站的视频播放量、网页浏览量等高频操作,传统的关系型数据库不能够满足需求,Redis本身知道incr、incrby等命令很好的支持了这计数功能。
社交网络,Redis支持多种复杂数据结构,比如一个用户有自己的粉丝,同时也会关注其他人,这些多可以使用set来存储,如果需要有序,可以使用zset来存储,这些复杂的数据结构传统的关系型数据库并不能很好的支持,同时,由于社交网络网站本身访问量比较大,传统数据在性能上也是不能够满足的。
消息队列,Redis提供了消息队列功能,能够满足一般的消息队列需求。
分布式锁,Redis提供了SET key value [EX seconds] [PX milliseconds] [NX|XX]命令,以及Lua脚本功能,基于此能够很好的实现分布式锁功能。

Redis 不适合做什么

每种产品都有自己的特定的应用领域。Redis也不是万能的。

Redis是内存数据库,相比磁盘类型的数据库成本要高不少,注定了Redis不能用于存储大规模的数据(土豪忽略)。
Redis有足够高的性能,因此对于热数据能够很好满足需求,但如果冷数据存在Redis里不免过于浪费(土豪忽略)。
Redis数据存储在内存中,对于可用性要求极高,且需要永久保存的数据不建议放在Redis中,虽然Redis提供持久化、复制等功能保证数据落盘,但持久化、复制等也存在时间差,这段时间的数据也不是能够完全保证不丢失的。
Redis是单线程的,对于数据比较大的数据的读写操作会阻塞整个数据库,因此Redis不适合存储单个value比较大的数据。

相比其他KV数据库,Redis提供了丰富的数据结构来满足用户的不同需求。同时,可以说Redis在内存使用是锱铢必较。为了最大可能的节约内存,Redis的每一种数据结构都拥有2~3种(截止Redis6.0,后续可能会更多)的底层实现。比如,在list、hash、set、zset等复杂数据结构在数据量较小的情况下都会使用ziplist这种数据结构等,由于ziplist是连续空间,不影响指针等附加消耗,在数据量较小的时候读写速度劣势也并不明显,但是可以节约不少存储,尤其是在实际使用场景种往往小数据占比较大的情况下内存节约更为明显。

这里给大家展示一部分Redis相关的面试题集,一部分解析,更多的Redis面试整理解析可以看整理的《大厂Redis高频面试75题解析文档》

Redis缓存

Redis实现分布式锁

JVM性能调优

  • Java内存区域
  • 垃圾回收器和内存分配策略
  • JVM的执行子系统
  • 编写高效优雅Java程序
  • 深入了解性能优化

     

MySQL性能优化

  • 事务
  • SQL优化原则
  • JOIN的原理
  • 执行计划与执行明细
  • 执行流程
  • 表结构对性能的影响
  • 索引

     

我的Spring学习笔记

  • Spring类
  • Spring MVC
  • Spring AOP
  • Spring IOC
  • 事务管理

     

Spring学习笔记思维脑图

俗话说的好,只要功夫深,铁杵磨成针,平时准备好,面试不用慌。

还有更多的面试刷题库:《1000道互联网高频面试解析》《489道资深工程师面试解答》《JAVA核心面试知识点整理》

《1000道互联网高频面试解析》

本篇PDF文档包含各大互联网公司面试高频题,刷完基本面试没有问题,只是面试造飞机,工作拧螺丝就得看自己啦!

《489道资深工程师面试解答》

《JAVA核心面试知识点整理》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计SSM临港新片区招商引资项目管理系统的设计与实现(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

jmeter性能测试使用梯度测试的方法

JMeterPlugins-Standard.jar下载地址:Download :: JMeter-Plugins.org 项目验收,用jmeter做并发测试,测试单位不通过,我们可以 仔细一问测试单位,嘿,jmeter写个并发数做测试不算并发测试,要做…

Vue3 —— 利用vite创建一个vue3项目

前言 本文主要讲解如何利用vitevue创建第一个项目以及vue3的基础知识点 一、创建一个vue3项目 这里我们主要介绍如何利用 vitevue3创建项目 1.有关vite Vite(法语意为 "快速的",发音 /vit/,发音同 "veet")是…

Editor扩展常用API

如图 效果图 代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class Mybianyi : EditorWindow { string PasswordField ""; string m_textArea ""; float …

力扣hot100——第1天:1两数之和、2两数相加、3无重复字符的最长子串

文章目录1.1两数之和【代码随想录已刷】2.2两数相加2.1.题目2.2.解答3.3无重复字符的最长子串3.1.题目3.2.解答1.1两数之和【代码随想录已刷】 参考:力扣题目链接;自己的博客题解 2.2两数相加 参考:力扣题目链接;参考题解 2.1…

【附源码】计算机毕业设计JAVA众筹平台网站

【附源码】计算机毕业设计JAVA众筹平台网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

什么是 游戏引擎 ?各个主流引擎的区别

在之前的元宇宙中有提及到游戏主播这个行业,那对应的就会有游戏开发者,对于开发最快捷的方式当然是使用游戏引擎进行开发了呀,那接下来我们就来说说这方面的内容吧 ! 本篇文章主要讲解,游戏开发中常用的5个游戏引擎及其…

C++——二叉搜索树

目录 二叉搜索树 二叉搜索树实现 非递归插入|非递归查找 删除 推导阶段 非递归删除代码 递归查找 递归插入 递归删除 析构函数 拷贝构造 赋值重载 完整代码 二叉搜索树的应用 Key/Value模型 二叉搜索树 二叉搜索树又称二叉排序树,它或者是一…

第3部分 静态路由

目录 3.1 静态路由与默认路由 3.1.1 静态路由介绍 3.1.2 默认路由介绍 3.2 静态路由命令汇总 转发数据包是路由器的最主要功能。路由器转发数据包时需要查找路由表,管理员可以通过手工的方法在路由器中直接配置路由表,这就是静态路由。虽然静态路由不…

Dialog的IDE搭建systermView的方法步骤(DA1469X)

1.背景 SystemView 是一个可以在线调试嵌入式系统的工具,它可以分析有哪些中断、任务执行了,以及这些中断、任务执行的先后关系。还可以查看一些内核对象持有和释放的时间点,比如信号量、互斥量、事件、消息队列等。这在开发和处理具有多个线…

大规模 MIMO 检测的近似消息传递 (AMP)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

神经架构搜索的综合调查:挑战和解决方案(一)

神经架构搜索的综合调查:挑战和解决方案 paper题目:A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions paper是西北大学发表在ACM Computing Surveys 2021的工作 paper地址:链接 ABSTRACT 深度学习以其强大的…

c#机器学习之opencv(2)-Mat基础

目录Mat基础Mat本质copyTo与cloneMat基础 opencv将图像数据存在一个二维矩阵里。 下面代码复制了一个图像矩阵。 Mat srcPic new Mat("test1.png", ImreadModes.Color); Mat aPic new Mat(srcPic,new OpenCvSharp.Rect(100,120, srcPic.Width-100, srcPic.Heigh…

1.8 打好shell基础

一、常用shell命令 1、管道命令 (1)命令格式 (2)案例演示 任务1、查看/etc目录信息前5行信息 执行命令:ll /etc | head -5 任务2、查看/etc/profile文件后5行信息 执行命令:cat /etc/profile | tai…

大数据培训FileInputFormat实现类

FileInputFormat实现类 思考:在运行MapReduce程序时,输入的文件格式包括:基于行的日志文件、 二进制格式文件、数据库表等。那么,针对不同的数据类型,MapReduce是如 何读取这些劣如据的呢? FileInputFormat常见的接口实现类包括:TextInputF…

mapreduce搭建

一.虚拟机安装CentOS7并配置共享文件夹 二.CentOS 7 上hadoop伪分布式搭建全流程完整教程 三.本机使用python操作hdfs搭建及常见问题 四.mapreduce搭建 五.mapper-reducer编程搭建 mapreduce搭建一、配置1.创建mapred-site.xml文件2.编辑mapred-site.xml二、打开hadoop0.删除da…

virtio-net 实现机制【一】(图文并茂)

1. 基于virtio的半虚拟化概述 1.1 virtio运行结构 ① virtio表示虚拟化IO,用于实现设备半虚拟化,即虚拟机中运行的操作系统需要加载特殊的驱动(e.g. virtio-net)且虚拟机知道自己是虚拟机 相较于基于完全模拟的全虚拟化&#xf…

PR-视频加介绍背景

每天一个PS/PR小技巧(原理实践) 比如我们有一个展示视频,我们希望在视频一开始时添加一个介绍背景(纯色背景): 点击新建->颜色遮罩: 定义名称,选择颜色,然后就能在工…

Bug: conda环境与jupyter notebook kernel核环境不一致

问题 一般在服务器上进行环境安装的时候有多种方式,比如docker, conda等。conda肯使用起来更加简便,docker更适合服务器部署的时候使用。 本文记录在使用conda时候出现的问题,jupter notebook中的环境不一致导致的。 首先conda创建环境 co…

蓝桥杯嵌入式第二篇配置按键

文章目录前言一、原理图查看二、cubeMX配置三、代码讲解(使用按键控制LED灯的开关)四、HAL_Delay的内部实现五.遗留的问题总结前言 点完灯后接下来我们就开始按键的学习了,这也是很简单的,大家不用担心。 一、原理图查看 可以看到板子上面是有4个按键…