【Java八股文总结】之Redis数据库

news2024/11/22 0:48:18

文章目录

  • Redis 数据库
    • 一、Redis基础
      • 1、Redis应用场景
      • 2、Redis数据类型
      • 3、Redis常用命令
      • 4、Redis为什么速度快?
      • 5、Redis和Memcached的区别和共同点
      • 6、Redis和MySQL的区别?
    • 二、高可用
      • 1、主从复制
        • Q:主从复制主要的作用?
      • 2、Redis主从复制原理

Redis 数据库

Redis是一个基于 内存key-value结构 数据库。

一、Redis基础

Redis是一个开源的内存中的键值对(key-value)数据结构存储系统,可以用作 数据库、缓存和消息中间件Redis属于NoSql数据库

1、Redis应用场景

①缓存;②任务队列;③消息队列;④分布式锁。

2、Redis数据类型

①字符串String;②哈希Hash;③列表List(常用于任务队列);④集合Set;⑤有序集合sorted Set。
Redis中所说的数据类型主要是针对值value数据类型的,键key的类型都是字符串类型。
在这里插入图片描述

3、Redis常用命令

具体参见链接 Redis中文网
在这里插入图片描述
在这里插入图片描述

4、Redis为什么速度快?

①Redis 基于内存,内存的访问速度是磁盘的上千倍;
②Redis基于Reactor模式设计开发了一套高效的事件处理模型,主要是 单线程 事件循环和 IO多路复用(非阻塞)
③Redis 内置了多种优化过后的数据结构实现 ,性能非常高。
Linux系统有三种方式实现IO多路复用的方式:select、poll和epoll。

5、Redis和Memcached的区别和共同点

共同点:
①都是 基于内存 的数据库,一般都用来当 做缓存使用
②都有 过期策略
③两者的性能都非常高。

区别:
①Redis支持更 丰富的数据类型(支持更复杂的应用场景)。Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储;Memcached 只支持最简单的 k/v 数据类型。
②Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memcached把数据全部存在内存之中。
③Redis有 灾难恢复机制。因为可以把缓存中的数据持久化到磁盘上。
④Redis在服务器内存使用完之后,可以将不用的数据放到磁盘上。但是,Memcached在服务器内存使用完之后,就会直接报异常。
⑤Memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但是Redis目前是原生支持cluster模式的。
Memcached是多线程,非阻塞IO复用的网络模型;Redis使用单线程的多路IO复用模型。(Redis 6.0引入了多线程IO)
⑦Redis支持发布订阅模型、Lua 脚本、事务等功能,而Memcached不支持。并且,Redis支持更多的编程语言。
⑧Memcached过期数据的删除策略只用了惰性删除,而Redis同时使用了惰性删除与定期删除。

6、Redis和MySQL的区别?

  1. MySQL是关系型数据库;而Redis是非关系型数据库
  2. MySQL用于持久化存储数据到 硬盘,功能强大,但是速度缓慢;而Redis用于存储使用较为频繁的数据到 缓存 中,读取速度快。
  3. MySQL的数据存放在磁盘中;而Redis的数据存放在内存中。
  4. MySQL常用数据类型有数值、日期/时间、字符串;Redis常用数据类型有字符串、Hash、List、Set、Zset。
    MySQL适合应用在web网站系统、数据库仓库、日志记录等。
    Redis适合在会话缓存、发布/订阅模型等。

二、高可用

Redis保证高可用主要有三种方式:主从、哨兵、集群。

1、主从复制

在这里插入图片描述
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为 主节点(master),后者称为 从节点(slave)。且数据的复制是 单向 的,只能由主节点到从节点。Redis主从复制支持 主从同步从从同步 两种,后者是Redis后续版本新增的功能,以减轻主节点的同步负担。

Q:主从复制主要的作用?

  1. 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  2. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复(实际上是一种服务的冗余)。
  3. 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载。尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  4. 高可用:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

2、Redis主从复制原理

在这里插入图片描述

  1. 保存主节点信息,包括主节点的ip和port。
  2. 主从建立连接,从节点发现新的主节点后,会尝试和主节点建立网络连接。
  3. 发送ping命令,看 主从端是否连接成功 。连接建立成功后从节点发送ping请求进行首次通信,主要是检测主从之间网络套接字是否可用、主节点当前是否可接受处理命令。
  4. 权限验证。如果主节点要求密码验证,从节点必须正确的密码才能通过验证。
  5. 同步数据。主从复制连接正常通信后,主节点会把持有的数据全部发送给从节点。
  6. 命令持续复制。接下来主节点会持续地把写命令发送给从节点,保证主从数据一致性。

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

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

相关文章

Cadence之Allegro:蛇形与差分等长

文章目录 一、三种等长方法二、直接等长法设置教程1、差分设置2、analysis设置三、pin-pair法设置教程一、三种等长方法 直接等长法 适用pin和pin之间没有容抗和阻抗的情况,即pin和pin之间只有一根线、没有电阻和电容的时候才可以使用这种方法。 pin-pair法 建立Sigxplorer模形…

基于stm32的光照强度检测智能窗帘系统

资料编号:098 下面是相关功能视频演示: 98-基于stm32的光照强度检测智能窗帘系统Proteus仿真(源码仿真全套资料)功能介绍: 检测当前的光照强度,LCD1602显示,并且可以自动打开关闭窗帘&#xf…

Tomcat AJP 文件包含漏洞(CVE-2020-1938)

目录 1.漏洞简介 2、AJP13 协议介绍 Tomcat 主要有两大功能: 3.Tomcat 远程文件包含漏洞分析 4.漏洞复现 5、漏洞分析 6.RCE 实现的原理 1.漏洞简介 2020 年 2 月 20 日,公开CNVD 的漏洞公…

【ACL 2022】用于多标签文本分类的对比学习增强最近邻机制

论文地址:https://aclanthology.org/2022.acl-short.75.pdf 1. 摘要 多标签文本分类(MLTC)是自然语言处理中的一项基本且具有挑战性的任务。以往的研究主要集中在学习文本表示和建模标签相关性上。然而,在预测特定文本的标签时&…

玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!

sql语句group by使用详解group by的基本语法基本语法什么是分组查询(一个字段)多个字段的分组查询1.两个字段的分组查询2.三个字段及N个字段进行分组查询having子句的使用基本语法having是干什么的演示分组查询select关键字后面列名书写的注意事项group by的基本语法 基本语法…

入门必写项目之图书管理系统(分析详解+完美运行+代码可拿)

文章目录一、需求分析二、思路分析三、包分类四、模块代码展示1.1书籍类(Book)实现1.2书架类(BookList类)实现2.1功能接口(IOperation)实现2.2增加图书(Addoperation)实现2.3删除图书…

家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?

前言 其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔。 因为没有资格,也没有钱在一线城市买房 (😂😂😂); 但是在要结婚之前,婚房又是刚需。 我和太太最终一起在一线城市周边的某二线城…

Pyspark学习笔记小总

pyspark官方文档: https://spark.apache.org/docs/latest/api/python/index.html pyspark案例教程: https://sparkbyexamples.com/pyspark-tutorial/ 1. 写在前面 这篇文章记录下最近学习的有关Pyspark以及用spark sql去处理大规模数据的一些常用语法,之前总觉得p…

中小企业办公自动化系统设计与实现(SSH)

目 录 摘 要 I ABSTRACT II 目 录 IV 第1章 绪论 1 1.1 课题背景 1 1.1.1 办公自动化概述 1 1.1.2 中小企业办公模式的现状 2 1.2 研究意义 3 1.3 设计技术及开发环境 5 1.3.1 设计技术 5 1.3.2 开发环境 7 第2章 可行性分析 9 2.1 组织和管理可行性 9 2.2 经济可行性 9 2.3 技…

动态规划模板总结(1)

动态规划思想(1) 背包问题 ​ 分类: 01 背包问题 ​ 含义:每个物体最多选1次,在不超过总体积的情况下价值最大图解: f(i,j)表示的是集合的某种属性,是个值。 集合是所有选法 i 只从前i个中选 朴素实现 #include&…

ElasticSearch是什么?ElasticSearch在SpringBoot中怎么用?SpringBoot整合ElasticSearch

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.4.3.4 ElasticSearch(ES) 3.4.3.4.1 介绍 是一个…

MySQL JDBC编程

✏️作者:银河罐头 📋系列专栏:MySQL 🌲“种一棵树最好的时间是十年前,其次是现在” 文章目录前置知识APIJDBC的使用安装数据库代码插入操作查找操作前置知识 API API(Application Program Interface)被定义为应用程…

金属纳米颗粒图像分割和计数

代码下载链接,直接上程序运行的效果: 为了便于大家学习,把原图也都贴上了:

乐趣国学—品读《弟子规》中的“亲仁”之道

文章目录亲仁同是人 类不齐 流俗众 仁者希果仁者 人多畏 言不讳 色不媚能亲仁 无限好 德日进 过日少不亲仁 无限害 小人进 百事坏亲仁 “亲仁”,亲是亲近、学习的意思,亲近那些有道德、有学问、有人生境界、有情操的人,这是讲择师。一个人的学…

【Redis】配置项与发布订阅

一、配置项 redis相关配置项都存放在redis.conf文件中,暂时只列举常见的几个,其余的工作中用到再回来更新 1、网络 bind:指定redis只能接受来自此IP绑定的网卡的请求,注意此默认值默认外网是不可访问的,如果想要开启…

Unity3D制作塔防类游戏

演示 功能简介 制作细节详解 演示 资源包:链接:https://pan.baidu.com/s/15MMtYeKkNk5xChvCx0EckQ?pwdd1ub 提取码:d1ub 对应视频教学:01-开始介绍和创建工程_哔哩哔哩_bilibili 功能简介 分为蓝,紫,粉,红四…

[iOS]UI分析工具Reveal

Reveal是ITTY BITTY发布的UI分析工具,可以很直观的查看App的UI布局。 去官网下载安装Reveal,启动后样式如下。 下面介绍一下如何在非越狱设备和越狱设备上用Reveal工具分析UI 一、非越狱设备用Reveal分析UI 1.安装MonkeyDev 安装流程可查看前文[iOS]…

2. Java线程模型

1. 操作系统线程 无论使用何种编程语言编写多线程程序,最终都是通过调用操作系统的线程来执行任务。线程是CPU调度的最小执行单元。 线程有多种实现方式,常见的有:内核线程、用户线程、混合线程。 不同线程模型的主要区别在于线程的调度方不…

bat脚本启动Java服务

bat脚本启动Java服务1.终端cmd窗口运行jar2. bat脚本启动jar包3.后台启动bat脚本4. 运行bat只启动一次jar服务及停止脚本5.注意事项6.所用资源1.终端cmd窗口运行jar Java项目一般会被打包成jar后启动,在windows系统中可以通过终端窗口cmd启动jar包,即在…

5G无线技术基础自学系列 | 移动通信网络的架构

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 第五代(5thGeneraton, 5G) …