适合初学者的[JAVA]:Redis(1:基础)

说明

本文适合刚刚学习Java的初学者,也可以当成阿岩~的随手笔记.接下来就请道友们和我一起来学习吧!

如果本文有写的不对的地方,请道友们一定要说出来,避免影响到刚刚学习Java的道友们,也让阿岩~进行更新于改进,在这里谢谢各位道友了!

前言

在我们进行后端开发时或者面试时会被经常问道一些关于Redis的问题,比如为什么使用Redis,Redis为什么快以及Redis的I/O多路复用

阿岩~这几天会分为几个章节去讲解一下,道友们跟我一起来学习吧~

概述

简单来说Redis就是一个全开源免费并且强大的非关系行数据库,主要用于热点数据,首页数据等多用户经常被访问的数据中.

为什么要用Redis

1.Redis经过多年发展,现在技术已经非常成熟和稳定,而且运用的时候也比较便捷.

2.对与一些热门数据,如果用户进行大量访问,如果我们没有Redis进行一个数据回应,那么所有的访问压力就会全部抵达我们的数据库.当达到一定阈值的时候,很有可能将我们的服务器压垮,造成损失.但是加入Redis时就会很大程度的避免这个问题发生.因为Redis能够很快的进行一个数据回应.

Redis的基础是什么

五种数据类型:

字符串(String) 最基本的数据类型,可以存储字符串、整数或浮点数,支持自增自减操作。

哈希(Hash) 由多个键值对组成的数据集合,适合存储对象。

列表(List) 一个有序的字符串列表,可以在列表两端插入或删除元素,支持基本的列表操作,如切片、插入和删除。

集合(Set) 由多个不重复的字符串组成的无序集合,支持求交集、并集、差集等基本操作。

有序集合(Sorted Set) 类似于集合,不同之处在于每个元素都有一个分数,支持根据分数范围获取元素,以及按分数排序的操作。

备注:

这并不是Redis所有的数据类型,只是我们比较常用到的数据类型(面试回答这五种就行)

Redis为什么那么快

1: 基于内存实现: Redis是基于内存实现的,不会像磁盘数据库一样需要将内容从磁盘读取到内存,所以不会受到磁盘I/O的限制.

2: 因为运用的是单线程,所以省去了很多上下文切换时间以及cpu的消耗.因为单线程不会考虑到线程的竞争,或者加锁以及死锁的问题导致性能消耗

3:使用I/O多路复用模型,非阻塞IO

(Redis是纯内存操作的,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度,I/O多路复用模型主要就是实现了高效的网络请求)

对比

当不同的客户端进行请求在Redis中有的数据时,会经过I/O多路复用和事件派发的模式进行回应.达到一个增加效率的过程

当不同的客户端进行请求没有Redis中有的数据时,请求会直接抵达数据库,在数据磁盘上进行查询,在此期间会受到磁盘I/O的限制,同时如果是多客户端访问时,会经过多线程争抢的过程,导致浪费效率

备注:

I/O多路复用+事件派发,以及Redis的各种模式,我会在之后的几篇中写道,道友们跟随阿岩~一起来学习吧!

                                                                                                                        ------阿岩~的随手笔记

阿岩~有话说:

因为工作原因,断更了很长一段事件,在这里跟大家说句抱歉了!让我们一起好好学习吧,加油!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值