线程 架构 原因redis

Java并发编程 JUC 线程的创建

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

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

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

使用EasyCVR语音对讲时,设备端没有收到音频流是什么原因?

关于语音对讲的相关技术文章,我们在此前的文章分享中也介绍过不少,感兴趣的用户可以翻阅往期的文章进行查看。EasyCVR平台兼容性强、拓展度高,可支持多协议接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等。 ......
语音 音频 原因 EasyCVR 设备

EasyCVR授权异常:上传授权文件不生效,且无任何提示,是什么原因?

EasyCVR视频融合平台基于云边端架构,能实现视频汇聚与集中管理、视频多端分发、多屏展示。平台可对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式的视频流,实现全终端、全平台覆盖,应用场景十分广泛。 ......
原因 EasyCVR 文件

01 | 基础架构:一条SQL查询语句是如何执行的?

### FAQ #### 画出 MySQL 的基本架构图 ![image.png](https://cdn.nlark.com/yuque/0/2023/png/559966/1686211777836-612d0e7c-7595-44b5-ad5c-9392633de905.png#average ......
语句 架构 基础 SQL 01

关联:Redis I/O模式

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

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

.net core 因路径原因导致的JSON解析错误

因解析json配置文件导致的错误: JsonReaderException: '0xEF' is an invalid escapable character within a JSON string. The string should be correctly escaped. LineNumb ......
路径 错误 原因 core JSON

十、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

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

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

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

新项目,不妨采用这种架构分层,很优雅!

大家好,我是飘渺。今天继续更新DDD&微服务的系列文章。 在专栏开篇提到过DDD(Domain-Driven Design,领域驱动设计)学习起来较为复杂,一方面因为其自身涉及的概念颇多,另一方面,我们往往缺乏实战经验和明确的代码模型指导。今天,我们将专注于DDD的分层架构和实体模型,期望为大家落地 ......
新项目 架构

redis 基本数据类型

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

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

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

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

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

python操作redis--pipeline

如何使用pipeline: from redis.client import Redis conn = Redis(host="0.0.0.0",port=6379,db=0,password="") with conn.pipeline() as p: for i in range(100): p ......
pipeline python redis

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

​ 前言 文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有比较好的上传体验呢,答案 ......
线程 WebUploader 文件

第四十七天 线程的相关知识

# 一、昨日内容回顾 ```python 如何创建进程 """进程也可以理解成是内存中某一块存储空间""" # 针对不同的操作系统代码创建进程的原理有区别 windows以模块导入的方式 linux\mac以拷贝的方式 join方法 主进程代码等待子进程代码运行结束之后再往后执行 p.join() ......
线程 知识

VMware Workstation 不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation) has occurred 原因探究与排错

VMware虚拟机一段时间不打开就又出现了一些小毛病,报错如下: VMware Workstation 不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation) has occurred 经过一番折腾,主要总结了一下几个排查点及修复措施: 原因 ......

Python+Redis学习笔记

首先,通过pip来安装操作redis的相关包,pip install redis 然后导入我们要使用的模块,form redis.Client import Redis 然后,通过docker启动redis, from redis.client import Redis r = Redis(host ......
笔记 Python Redis