reactor模式redis线程

JS引擎中的线程,事件循环,上下文

线程 浏览器中有哪些进程呢? 1.浏览器进程:浏览器的主进程,负责浏览器的界面界面显示,与用户交互,网址栏输入、前进、后退,以及页面的创建和销毁。 2.渲染进程(浏览器内核):默认一个tab页面一个渲染进程,主要的作用为页面渲染,脚本执行,事件处理等。 3.GPU进程:用于3D绘制等,将开启了3D绘 ......
上下文 线程 上下 事件 引擎

JAVA 线程池之Callable返回结果

# JAVA 线程池之Callable返回结果 原文:https://www.cnblogs.com/hapjin/p/7599189.html 本文介绍如何向线程池提交任务,并获得任务的执行结果。然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理。 ## 一、执行具体任务的线程类 要 ......
线程 Callable 结果 JAVA

JavaScript如何解决单线程缺陷——webWorker

# 解决JavaScript单线程问题——webWorkers > 参考文档 [使用 Web Workers - Web API 接口参考 | MDN (mozilla.org)](https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Worker ......
线程 JavaScript webWorker 缺陷

Java并发编程 JUC 线程的创建

进程和线程的区别 进程:进程是cpu资源分配的最小单位,有自己独立的内存空间 线程:线程是cpu调度的最小单位,共享进程的内存空间,一个进程在运行的过程中可以产生多个进程,线程在切换时消耗的资源远小于进程的切换 在Java中,创建一个线程的方法有很多种,可以通过复写父类的run()方法进行创建,也可 ......
线程 Java JUC

REST API 常用模式

REST:用于使用 HTTP 生成 API 的常见模式 表述性状态转移 (REST) 是一种用于生成 Web 服务的体系结构样式。 REST 请求是通过 HTTP 发出的。 它们使用 Web 浏览器用于检索网页和将数据发送到服务器的相同 HTTP 谓词。 谓词如下: GET:从 Web 服务检索数据 ......
常用 模式 REST API

Mybatis的parameterType造成线程阻塞问题分析

最近在新发布某个项目上线时,每次重启都会收到机器的 CPU 使用率告警,查看对应监控,持续时长达 5 分钟,对于服务重启有很大风险。而该项目有非常多 Consumer 消费,服务启动后会有大量线程去拉取消息处理逻辑,通过多次 Jstack 输出线程快照发现有很多 BLOCKED 状态线程,此文主要记... ......
线程 parameterType Mybatis 问题

使用c#实现23种设计模式

使用c#实现23种常见的设计模式 设计模式通常分为三个主要类别: 创建型模式 结构型模式 行为型模式。 这些模式是用于解决常见的对象导向设计问题的最佳实践。 以下是23种常见的设计模式并且提供c#代码案例: 创建型模式: 1. 单例模式(Singleton) public sealed class ......
设计模式 模式

适配器模式的运用

[TOC] # 一、适配器模式的运用 ## 1.1 介绍 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 **例子**:手机充电器(将220v转换为65v的电压),读卡器,笔记本电脑的充电器等,其实就是使用到了适配器模式。 ## 1.2 适配器模 ......
适配器 模式

关联:Redis I/O模式

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

I/O模式(BIO/NIO/AIO)

I/O过程 对于一次IO访问(这回以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区,最后交给进程。所以说,当一个read操作发生时,它会经历两个阶段: 1. 等待数据准备 (Waiting for the data to be ready ......
模式 BIO AIO NIO

Redis系列15:使用Stream实现消息队列(精讲)

[Redis系列1:深刻理解高性能Redis的本质](https://www.cnblogs.com/wzh2010/p/15886787.html "Redis系列1:深刻理解高性能Redis的本质") [Redis系列2:数据持久化提高可用性](https://www.cnblogs.com/w ......
队列 消息 Stream Redis

redis 安装fatal error: jemalloc/jemalloc.h: No such file or directory 错误

转自;https://www.cnblogs.com/oxspirt/p/11392437.html 问题现象: 我第一次安装redis时,没有安装gcc,报错了,然后安装好gcc,后再次执行make命令,安装redis就出现了如上的错误 网上错误解决办法 网上大部分解决办法都是错误的,如下文: ( ......
jemalloc directory 错误 redis fatal

Redis 面试题

## 1. Redis 是什么? Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此**读写速度非常快**,常用于**缓存,消息队列、分布式锁等场景**。 ## 2. Redis 有哪些数据类型? * **5 种基础数据结构**:String(字符串)、List(列表)、Se ......
Redis

十、Redis主从复制

读操作:主库、从库都可以接收; 写操作:首先到主库执行,然后,主库将写操作同步给从库。 主从第一次同步 第一阶段,主从库间建立连接、协商同步的过程,主要是为全量复制做准备。从库和主库建立起连接,主库确认回复后,就可以开始同步了。具体来说,从库给主库发送 psync 命令,psync 命令包含了主库的 ......
主从 Redis

十三、Redis并发竞争问题

多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了 首先使用分布式锁,确保同一时间,只能有一个系统实例在操作某个key 然后修改key的值时,要先判断这值的时间戳是否比缓存里的值的时间戳更靠后, ......
问题 Redis

十一、Redis扩容如何保证哈希一致性

横向扩容,保证哈希一致性 一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2^32-1(即哈希值是一个32位无符号整形) 下一步将各个服务器使用Hash进行一个哈希,具体可以选择服务器的ip或主机名作为关键字进行哈希,这样每台机器就能确定其在哈希环上的位置 接下来使用 ......
一致性 Redis

六、Redis缓冲区

Redis缓冲区有两个应用场景: 在客户端和服务器端之间进行通信时,用来暂存客户端发送的命令数据,或者是服务器端返回给客户端的数据结果; 主从节点间进行数据同步时,用来暂存主节点接收的写命令和数据 客户端缓冲区 是为了解决客户端和服务端请求和处理速度不匹配问题的,它又分为输入和输出缓冲区。 输入缓冲 ......
缓冲区 Redis

七、如何保证 Redis 中的数据不丢失

单机单节点模式使用 AOF 和 RDB 结合的方式 RDB 做镜像全量持久化,AOF 做增量持久化。因为 RDB 会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要 AOF 来配合使用。 Redis 集群模式 1、master 节点持久化 2、Redis断点续传:主从复制过程中,如果 ......
数据 Redis

五、Redis内存消耗

从性能上来说,内存占用过高会引起Reids响应变慢 从高可用上来说,内存过大可能会会引起部分数据丢失,故障恢复变慢 Redis内存消耗主要在于其主进程消耗和子进程消耗。而主进程消耗又主要包括自身内存、对象内存、缓冲区内存、内存碎片五个方面 1、自身内存 指Redis进程自身所占用的内存,这部分内存通 ......
内存 Redis

Nginx大文件分片上传/多线程上传

​ 前言 一、SpringMVC简介 1.1、SpringMVC引言 为了使Spring有可插入的MVC架构,SpringFrameWork在Spring基础上开发SpringMVC框架,从而在使用Spring进行WEB开发时可以选择使用Spring的SpringMVC框架作为web开发的控制器框架 ......
线程 文件 Nginx

外观模式:隐藏了复杂系统的复杂性,并提供一个简单的接口来访问系统

外观模式是一种结构型设计模式,它为复杂子系统提供了一个统一的接口,从而使其更易于使用。外观模式隐藏了子系统的复杂性,并将其封装在一个高级接口中。在使用外观模式时,客户端只需要与外观对象进行交互,而不需要直接与子系统中的各个组件交互。 ```java // 子系统中的组件 class CPU { pu ......
复杂系统 系统 复杂性 外观 接口

redis应用场景--记录文章,图文,或者视频的浏览次数

在阅读博客文章时,你可以看到一篇文章被阅读的次数,如果使用mysql, 那么在设计article表时,就必须设置一个view_count字段来记录这篇文章被阅读的次数。 但这种方式相比于使用redis,并不是一种好的办法,原因在于,每次更新view_count字段的值都是一个比较费力的过程。 首先, ......
场景 次数 图文 文章 redis

org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce.core.RedisException: java.io.IOException: Connection reset by peer

springBoot + redis. 程序隔一段时间会莫名其妙的报Redis的错误. 报错如下: org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce ......

redis应用场景--实现布隆过滤器

简述布隆过滤器的实现思路: 假设有一个长度为n的比特数组,bit_array,数组里的每一位都是0,对于一个url或者是其他数据,使用hash算法计算出url的散列值,这个散列值当然是一个整数,暂且命名为index,index=index%n,确保index的值小于n,查看bit_array[ind ......
过滤器 场景 redis

工厂方法模式/抽象工厂模式

# 1.工厂方法模式 ## 1. UML ![image](https://img2023.cnblogs.com/blog/2415825/202306/2415825-20230602170556810-998451510.png) 比简单工厂更符合开闭原则,简单工厂依赖具体类,当增加具体类时就 ......
工厂 模式 方法

redis应用场景--游戏排行榜

有序集合也是集合,不同之处在于,集合里的元素可以附带这个分数,元素不能重复,但是分数可以重复,不仅如此,还可以根据分数进行排序。 很多游戏都有玩家得分的排行榜,这个排行榜随时处于变动中。 游戏有很多玩家,可以设计一张表,记录每一个玩家的分数,并根据玩家新一局的分数来更新这张表,当需要获取排行榜前10 ......
场景 排行榜 redis

redis 基本数据类型

所有数据都以唯一 key 字符串作为名称,而 value 只是数据类型的差异。所以,针对 key 的命令都是通用的。 方便演示,采用 docker 镜像,可以选择 redis:latest 镜像,这里我选择了带布隆过虑器的 redis 镜像。 docker run -p 6379:6379 --na ......
类型 数据 redis

百度WebUploader大文件分片上传/多线程上传

​ 对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程并发上传能够达到最大效率。 本文是基于 springboot + vue 实现的文件上传,本文主要介绍服务端实现文件上传的步骤及 ......
线程 WebUploader 文件

代理模式:为其他对象提供一种代理以控制对这个对象的访问

代理模式是一种常见的设计模式,它允许一个对象在不改变其行为的情况下,控制对另一个对象的访问。代理模式通常用于保护敏感对象,或者为了延迟实际对象的加载。 在Java中,代理模式有两种形式:静态代理和动态代理。静态代理需要手动编写代理类,而动态代理则可以在运行时自动生成代理类。 > 示例代码:__静态代 ......
对象 模式

redis应用场景--缓存过期时间

缓存可以有效的提高关键数据的获取速度,使得不必要每次查询数据库,避免了数据库被击穿。 主动更新: 需要知道这份数据的实效时间点,然后在那个时间点到来时重新更新数据,可能是查询数据库,也可能是访问第三接口,在获得数据之后,更新redis缓存。 被动更新: 程序每次都去redis获取数据,但对这份数据设 ......
缓存 场景 时间 redis