Redis1

embedded/2024/9/24 6:22:38/

Redis的优势

1.性能极高

2.数据类型丰富

3.支持数据的持久化

4.支持数据备份

Redis除了能做什么?

分布式缓存、内存存储和持久化、分布式锁、排行榜、消息队列.....

Redis怎么实现消息队列?

Redis5.0新增的数据结构Stream可以用来做消息队列,不过和专业的消息队列相比还有很多欠缺。

Redis数据类型

1.String(字符串)

2.List(列表)

3.Hash(哈希表)

4.Set(集合)

5.Zset(sorted set:有序集合)

6.GEO(地理空间)

7.HyperLogLog(基数统计)

8.bitmap(位图)

9.bitfield(位域)

10.Stream(流)

最后两种不常见

Redis实现统计网站UV?

UV:独立访客,一般理解为客户端IP,需要去重

HyperLogLog 是用来做基数统计算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定且是很小的

Redis实现一个排行榜?

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。可以用Zset实现排行榜。

Redis单线程模型

Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是为了解决这个问题而出现

所谓 I/O 多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。这种机制的使用需要 select 、 poll 、 epoll 来配合。多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象上等待,无需阻塞等待所有连接。当某条连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理。
Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以Redis才叫单线程模型

Redis6.0之前为什么不使用多线程依旧很快?

1.基于内存操作

2.数据结构简单

3.多路复用和非阻塞I/O

4.避免上下文的切换

Redis6.0之前性能瓶颈不在CPU

Redi6.0之后为何引入了多线程?

提高网络IO读写性能


http://www.ppmy.cn/embedded/92892.html

相关文章

【数据结构】栈和队列

目录 栈 1、概念 2、 栈的使用 3、 栈的模拟实现 相关概念区分 队列 1、 概念 2、队列的使用 3、队列模拟实现 4、 循环队列 为什么要有循环列队 如何区分空与满 5、双端队列 ) 栈 1、概念 栈(Stack) :一种特殊的线性表,其 只允许在固定的…

使用 Mojo 中的 Mandelbrot 和 Python 绘图

Mojo不仅非常适合编写高性能代码,而且还允许我们利用庞大的Python生态系统中的库和工具。通过无缝的Python互操作性,Mojo可以使用Python来做它擅长的事情,特别是gui,而不会牺牲关键代码的性能。让我们使用经典的Mandelbrot集合算法并在Mojo中实现它。 本教程展示了Mojo的两…

Spring有5种自动装配方式,其中autodetect默认使用?

Spring有5种自动装配方式,其中autodetect默认使用? A. 构造函数装配 B. 类型装配 C. setter装配 D. byName装配 选择A Spring框架提供了5种自动装配模式,主要是用在依赖注入的场景中。 no:这是默认值,表示不使用自动装…

JavScript函数知识点全面汇总,重磅来袭!

你好同学,我是沐爸,欢迎收藏、点赞和关注!个人知乎 JavaScript中的函数是一个核心概念,它涵盖了多个知识点,这些知识点对于理解和使用JavaScript至关重要。 以下是对JavaScript函数涉及的主要知识点的全面汇总&#xf…

正则采集器之六——商品管理

将采集到的商品保存到数据库中并在后台系统展示,接下来讲解后端和前端代码。 后端 mapper类: package com.learn.reptile.mapper;import org.apache.ibatis.annotations.Mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.…

常见框架漏洞

thingphpv5 /index.php 漏洞利用 漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分原因,在…

模型实战(25)之 基于LoFTR深度学习匹配算法实现图像拼接

模型实战(25)之 基于LoFTR深度学习匹配算法实现图像拼接 图像拼接在全景图、大图或者多目场景下经常会被使用,常用的方法有传统图像处理算法和深度学习直接获取对应点的算法传统图像处理算法过程繁琐,阈值少且整体算法结果对调参比较敏感,其主要通过形状、特征点等描述子对…

Stable Diffusion 使用详解(7)---AI 摄影

目录 背景 底模的选择 例子 majicMix GirlFriendMix( Lora) 对比效果 LEOSAMs MoonFilm ADetailer 使用 说明 例子 问题 处理方式 效果 背景 魔法师使用魔法作的画有时候太过完美,以至于有点脱离真实摄影的感觉,我们…