reactor模式redis线程

我是如何用 redis 分布式锁来解决线上历史业务问题的

近期发现,开发功能的时候发现了一个 mq 消费顺序错乱(历史遗留问题),导致业务异常的问题,看看我是如何解决的 问题抛出 首先,简单介绍一下情况: 线上 k8s 有多个 pod 会去消费 mq 中的消息,可是生产者发送的消息是期望一定要有序去消费,此时要表达的是,例如 生产者如果发送了 3 个通知消 ......
分布式 业务 问题 历史 redis

Spring集成线程池

在Spring中,可以使用TaskExecutor接口来集成线程池。以下是一个示例代码,演示如何在Spring中配置和使用线程池: 1. 首先,添加依赖项,以使用Spring的线程池支持。在Maven项目中,可以在pom.xml文件中添加以下依赖项: <dependencies> <!-- 其他依赖 ......
线程 Spring

设计模式概述一

设计模式:核心在与提供了相关问题的解决方案,使得人们可以更加方变得服用成功地设计和体系结构 设计模式的本质是棉线对象设计原则的实际应用,是对累的封装性,继承性以及累的关联关系和组合关系的充分理解 设计模式的优点: 提高思维能力,编程能力和设计能力 设计更加标准化,提升软件开发的效率,缩短软件的开发周 ......
设计模式 模式

Redis 缓存击穿,缓存穿透,缓存雪崩原因+解决方案

缓存击穿,缓存穿透,缓存雪崩的原因 缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。 缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取 ......
缓存 雪崩 解决方案 原因 方案

线程池|多线程

什么是线程池? 线程的引入是因为进程的花销很大,线程相较于进程的花销少了很多,但是随着并发程度提高,对性能的要求也提高,频繁的创建线程,销毁线程的开销似乎也挺大的,这种情况下,要想提高效率,就可以使用线程池来降低创建线程销毁线程的开销。线程池就是事先将需要的线程创建好,放到“池”中,需要线程的时候, ......
线程

主线程里面捕获子线程异常

数据都入库成功 数据都没有入库成功 ......
线程

redis客户端2

......
客户端 客户 redis

实现shell脚本多线程

默认的情况下,Shell脚本中的命令是串行执行,必须等到前一条命令执行完后才执行接下来的命令,但是如果有一大批命令需要执行,而且互相又没有影响的情况下,那么就要使用并发的方式执行命令了。 因为Shell本身并不提供多线程机制,因此需要借助其他技术(如有名管道)来实现多线程的通信。 后台执行实现并发 ......
线程 脚本 shell

虚幻引擎 UMG ViewModel 视图模式

通常,UI 开发人员将后端数据和视觉设计分解为单独的系统。这使得构建用户界面 (UI) 的过程破坏性更小且更高效,因为设计人员可以在不破坏 UI 背后的代码的情况下更改视觉呈现,程序员可以专注于数据和系统,而无需完整的前端。视图模型插件通过引入视图模型资产和视图绑定,为这个工作流提供了一个媒介。 工 ......
视图 虚幻 ViewModel 模式 引擎

Redis的几种数据类型

......
类型 数据 Redis

Spring 框架中用到了哪些设计模式

单例,spring的bean的scope默认就是单例 工厂,例如beanfactory,ApplicationContext创建对象 代理,aop使用了代理 模板,以xxxtemplate结尾的都是用到了模板模式,例如jdbc,redis,rabbit~ 剩下的 包装器设计模式 观察者模式 适配器模 ......
设计模式 中用 框架 模式 Spring

Spring 中的单例 bean 的线程安全问题

线程安全问题是由静态变量引起的,如果只是对静态变量读取的话,没有线程安全问题,如果有写入的话,就会导致线程安全问题 bean可以分为两种,一种是有状态,一种没有状态 状态可以认为是实例变量,可以保存数据 如果没有状态,也就没有线程安全问题,使用sigleton范围,提高性能 如果有状态,使用prot ......
线程 Spring 问题 bean

Redis从入门到放弃(12):pipeline管道技术

1、引言 在现代应用程序中,高性能和低延迟是至关重要的因素。而在处理大规模数据操作时,Redis作为一种快速、可靠的内存数据库,成为了许多开发人员的首选。 在Redis中,每个操作都需要与服务器进行往返通信,存在网络开销损耗,当有批量命令执行时,就会有较大的网络开销损耗。为了解决这个问题,Redis ......
管道 pipeline Redis 技术

redis连接失败

本次连接redis失败记录,密码全为0,不加“” 认证会失败 springboot yml配置 密码为0时,要加“” 很经典的错误,记录一下 ......
redis

详解Java多线程编程中线程的启动、中断或终止操作

​ 在Java中start和tun方法可用被用来启动线程,而用interrupt方法来中断或终止线程,以下我们就来详解Java多线程编程中线程的启动、中断或终止操作 线程启动: 1.start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法 ......
线程 Java

【23种设计模式】组合模式(七)

前言 组合模式,英文名称是:Composite Pattern。当我们谈到这个模式的时候,有一个物件和这个模式很像,也符合这个模式要表达的意思,那就是“俄罗斯套娃”。“俄罗斯套娃”就是大的瓷器娃娃里面装着一个小的瓷器娃娃,小的瓷器娃娃里面再装着更小的瓷器娃娃,直到最后一个不能再装更小的瓷器娃娃的那个 ......
模式 设计模式

ubuntu 进入安全模式

开启重启时按ESC 键进入安全模式; 选择recovery mode 按 e 进入该界面,并按方向键 下键 到达最后。 修改启动参数信息:将ro(只读)改为rw(读写),并指定终端/bin/bash 改完如图所示: 修改完成后,按 ctrl + x 进入系统 选择 ‘ Drop to root sh ......
模式 ubuntu

Kubernetes----部署单节点Redis

一、创建ConfigMap (1)首先创建命名空间 kubectl create namespace ospp (2)编写redis-config.yaml文件,内容如下: apiVersion: v1 kind: ConfigMap metadata: name: redis-config nam ......
节点 Kubernetes Redis

redis 事务处理,一旦异常,则回滚

事务操作: RedisTemplate支持事务操作,您可以使用multi()、exec()和discard()来开启、提交或取消事务。 于是使用 /** * redis事务测试 * @author 陈惟鲜 * @date 2023年6月10日 下午2:07:03 * @throws Exceptio ......
事务 redis

探索 Java 线程的创建

在并发编程中我们为啥一般选用创建多个线程去处理任务而不是创建多个进程呢?这是因为线程之间切换的开销小,适用于一些要求同时进行并且又要共享某些变量的并发操作。而进程则具有独立的虚拟地址空间,每个进程都有自己独立的代码和数据空间,程序之间的切换会有较大的开销。 ......
线程 Java

redis集群

Redis集群 本章是基于CentOS7下的Redis集群教程,包括: 单机安装Redis Redis主从 Redis分片集群 1.单机安装Redis 首先需要安装Redis所需要的依赖: yum install -y gcc tcl 然后将课前资料提供的Redis安装包上传到虚拟机的任意目录: 例 ......
集群 redis

基于工步执行的附加超时机制的一种模式

前言 该模式主体是一个switch-case结构,所谓工步即为case常量表达式的值,一般为数字常量,也成为显性工步;通过default这一特殊机制,实现隐性工步的执行;而每一工步所执行的间隔就需要定时器来控制,这也是实现超时机制的方法。 这种模式还可以衍生出其他的模式,灵活性很大,总体上像是一个多 ......
机制 模式

分享一个 SpringBoot + Redis 实现「查找附近的人」的小技巧

前言 SpringDataRedis提供了十分简单的地理位置定位的功能,今天我就用一小段代码告诉大家如何实现。 正文 1、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta ......
SpringBoot 技巧 Redis

redis-实战篇-商户查询缓存

基本思路 添加缓存的原则:动态数据不要加缓存 缓存cache:数据交换的缓冲区。一般读写性能较高。比如浏览器缓存,浏览器会将一些经常使用的数据缓存到本机,这样在多次加载时就不需要访问服务器,而浏览器未命中的缓存则会去tomcat获取。 缓存的作用:降低后端负载、提高读写效率、降低响应时间 缓存的成本 ......
商户 缓存 实战 redis

redis-实战篇-短信登录

黑马点评,前后端分离的架构模式。前端分布在nginx上,后端分布在tomcat。 短信登陆 导入黑马点评项目: 打开项目,重新设置maven仓库位置。更新src/main/resources下的application.yaml中的数据库配置和redis配置。 后端部署: 点击services添加sp ......
实战 短信 redis

WPF 已知问题 传入错误数据给到 WriteableBitmap 可能导致渲染线程锁住

本文记录一个 WPF 已知问题,此问题已经被我修复。传入错误的数据给到 WriteableBitmap 对象,比如调用 WritePixels 时传入错误的 stride 数值,将可能导致渲染线程进入无限自旋锁 问题描述 应用程序停止渲染,或者是界面未响应。表现是在 渲染 线程卡住,从任务管理器看可 ......
WriteableBitmap 线程 错误 数据 问题

WinDbg调试命令之线程操作

WinDbg的线程操作命令可以帮助开发人员诊断和解决多线程应用程序中的问题,常用的命令有以下这些。 ~*e - 列出当前进程中的所有线程 这个命令会列出当前进程中的所有线程,包括它们的线程ID、状态、优先级、安全描述符等。通过查看这些信息,可以了解每个线程的状态和调用堆栈信息等。 ~*k - 列出指 ......
线程 命令 WinDbg

建造者模式

建造者模式 案例引入 1.建房子,过程分为打桩,砌墙,封顶。 2.房子有各种各样的,比如普通房,高楼,别墅,各种房子要求不一样,但是建造过程是一样的。 传统方式实现 代码如下 public abstract class AbstractHouse { public abstract void bui ......
模式

Redis的缓存穿透、缓存雪崩、缓存击穿问题及解决方案

Redis的缓存穿透、缓存雪崩、缓存击穿问题及解决方案 缓存穿透问题及解决思路 缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。因为我们查数据通常是现在redis缓存查数据,如果redis没有这个数据,就会去数据库查。如果张三想要搞垮 ......
缓存 雪崩 解决方案 方案 问题

Redis常用概念

Redis数据结构 Redis(Remote Dictionary Server)是一种开源的内存数据库,它支持多种数据结构。Redis的数据结构是其强大之处,它可以用于各种不同的用途,包括缓存、队列、计数器、发布/订阅系统等。以下是Redis支持的主要数据结构: 1. **字符串(String)* ......
概念 常用 Redis