线程 架构 原因redis

多线程锁问题

多线程锁问题 cache = (List<CM_ShipFeeDetail>)_memoryCache.Get(shipfeeDetailCacheKey); if (cache == null || cache.Count == 0) { lock (LockTransportRuleList) ......
线程 问题

Redis+lua脚本实现接口限流

/** * @author neng * @description 自定义限流注解 * @date 2020/4/8 13:15 */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME ......
脚本 接口 Redis lua

virtualbox 安装 本地redis和mysql环境,用nat network模式

1. 安装centos 7.9 ,关闭selinux 和firewalld,否则连不上。 2. 配置网卡,ip需和nat network配对 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROU ......
virtualbox network 模式 环境 redis

12306的技术架构演进(网络整理)

12306的技术架构是一个非常复杂和庞大的系统,经历了多个版本的演进和优化。根据搜索结果,以下是12306的技术架构的主要特点和演进过程: 第一代架构:互联网售票系统设计了缓存服务、用户管理、车票查询、订单及电子客票处理等多个相对独立的业务分区,以及三级网络安全域。 第二代架构:在2012年春运期间 ......
架构 12306 技术 网络

10月31日 开启子线程的两种方式

目录开启子线程的两种方式第一种方式第二种方式 开启子线程的两种方式 第一种方式 按照进程的方式开启只是将模块换了一下, 以函数为例子 代码如下 ##开启方式1 from threading import Thread#这里将threading包里面的Thread模块导入 import time de ......
线程 方式

redis + lua 限流 算法 滑动窗口 漏桶 令牌桶

redis + lua 限流 算法 滑动窗口 漏桶 令牌桶 /** * @Author liyichuan * @Date 2023/10/31 9:50 */ @Data public class RateLimiterHandle { /** * 补给率 */ private double re ......
令牌 算法 redis lua

redis cluster 多节点部署时出现Waiting for the cluster to join

如图显示一直卡在这里: 可能由一下几种情况 1、redis.conf 中的bind 配置问题 可能配置有问题限制的访问redis ,通常设置为本机IP ,或者可以设置为 0.0.0.0 进行测试 2、可能是集群总线端口未开放 若通讯端口为6379,那么集群总线端口16379一定要打开 3、clust ......
cluster 节点 Waiting redis join

Redis部署架构

部署架构 单节点(Single) 优点 架构简单,部署方便 高性价比:缓存使用时无需备用节点(单实例可用性可以用 supervisor 或 crontab 保证),当然为了满足业务的高可用性,也可以牺牲一个备用节点,但同时刻只有一个实例对外提供服务 高性能 缺点 不保证数据的可靠性 在缓存使用,进程 ......
架构 Redis

Redis持久化机制

持久化机制 通常来说,应该同时使用两种持久化方案,以保证数据安全: 如果数据不敏感,且可以从其他地方重新生成,可以关闭持久化 如果数据比较重要,且能够承受几分钟的数据丢失,比如缓存等,只需要使用RDB即可 如果是用做内存数据,要使用Redis的持久化,建议是RDB和AOF都开启 如果只用AOF,优先 ......
机制 Redis

浅析Redis大Key

在京东到家购物车系统中,用户基于门店能够对商品进行加车操作。用户与门店商品使用Redis的Hash类型存储,如下代码块所示。不知细心的你有没有发现,如果单门店加车商品过多,或者门店过多时,此Key就会越来越大,从而影响线上业务。 ......
Redis Key

线程和进程

进程 - 一个应用程序,总是通过操作系统启动的,当操作系统启动一个应用程序时,会分配一个拥有独立的可伸缩的内存空间的进程,原则上不受其他进程干扰 - 进程之间是可以通信的,只要两个进程双方遵守一定的协议,比如 ipc - CPU 在不同的进程之间切换执行 - 虽然一个应用程序在启动时只有一个进程,但 ......
线程 进程

线程创建方式

1.Thread 通过继承Thread的方式,可以创建一个线程,需要重写其中的run方法,启动线程时,通过调用start方法启动。形如: 2.Runnable 通过实现Runnable接口的方式,可以创建一个线程,需要重写其中的run方法,启动线程时,将自定义类的实例作为一个参数,调用Thread的 ......
线程 方式

windows设置redis开机启动

最近遇到了个问题,需要在windows中使用redis,但是redis没有开机启动,需要每次通过命令行进行启动,所以选择了设置redis开机启动。另外cmd窗口启动redis,如果不小心关掉了cnd,redis会跟着停掉,很不方便 进入redis文件夹,打开cmd,输入命令: redis-serve ......
windows redis

Redis学习

Redis 数据结构 Redis 数据类型 常见的有五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合),随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GE ......
Redis

10月31日线程基础

目录线程基础线程的概念如果把操作系统当成一个工厂进程之间是竞争关系,线程之间是什么关系纠正概念进程与线程的区别是什么? 线程基础 线程的概念 在操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,可以这么想一条流水线必须属于一个车间,一个车间的工作过 ......
线程 基础

redis-stream

......
redis-stream stream redis

多线程,多进程,协程,IO多路复用

关于Python Python有多进程,且原生支持协程,但是由于GIL全局锁的存在,Python只有假多线程,即单线程轮流执行多个任务,常用于IO任务的阻塞等待当中。 多线程 即一种基于内核态工作的异步运行方式。对于多核CPU而言,只有多线程和多进程才能真正的充分调用CPU的多核工作。但是由于用户态 ......
线程 进程

记一次老商家端应用内存突然飚高原因分析

一、排查过程 问题发现是因为当时接到了内存UMP报警信息,如下: 通过查看PFinder发现内存一直在增长,没有停止迹象,触发fullGC也并没有下降趋势: 当机立断,先立即去NP上摘除了此台机器流量,然后继续观察,发现内存依然在不断增长。 随即查看故障分析,并没有得到有效信息: 因为流量已经摘除, ......
原因分析 内存 原因 商家

Redis集群模式incr保证原子性的原理

1.主要是redis的key会解析到固定的主机上,比如集群上有host1,host2,host3;然后key1可能会解析后发现是要发到host2上,则在host2正常的情况下(有点像kafka rebalance;consumer处理哪些分区),key1会一直在host2上进行操作; 因此在redi ......
集群 原子 原理 模式 Redis

dotnet core 3.1 将 UWP 控件嵌入到 WPF 应用 收到 UIA 消息主线程卡住

本文记录一个问题,此问题是在 .NET Core 3.1 的 WPF 应用里面,嵌入 UWP 控件之后,在收到 UIA 的消息时,可能让主线程卡住。暂时此问题还不知道具体的复现步骤,此问题不确定是否真的和 WPF 或 UWP 相关,此问题可能仅仅只是 UIA 模块的问题 此问题没有在 dotnet ......
线程 控件 消息 dotnet core

Redis-小白篇

一、课程概述 二、Redis入门概述 1、是什么 2、能干嘛 2.1 主流功能与应用 2.2 mysql与redis的关系 ......
Redis

Lock实现线程间定制化通信

Lock实现线程间定制化通信 案例 要求 三个线程,AA BB CC AA线程打印5次,BB线程打印10次,CC线程打印15次 代码实现 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lo ......
线程 Lock

redis主从复制

集群规则 ......
主从 redis

程池线程池

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor 1,生成进程池线程池pool1=ThreadPoolExecutor () 不填默认是CPU个数的5倍pool2=ProcessPoolExecutor()不填 ......
线程

Redis的主从复制

1.主从复制的描述 主从复制是指降Redis服务器的数据从其中一台,复制到另一台上去。其中提供数据的是主节点,接收数据的是从节点。数据的复制只能从主节点复制到从节点上。 默认情况下每个启动的Redis服务都是主节点,可以通过修改配置,执行相关命令调整为从节点。另外一个主节点可以有多个从节点,但是一个 ......
主从 Redis

C++多线程——async、packages_task、promise

异步编程 async 、future 基本概念和使用: 异步执行函数:std::async 可以异步执行一个函数,这意味着函数将在后台线程中执行,而当前线程可以继续执行其他任务。 返回值获取:你可以获得函数的返回值,或者得到一个 std::future 对象,它允许你在将来的某个时刻获取函数的结果。 ......
线程 packages_task packages promise async

29win32编程基础——线程控制

suspendThred挂起线程 ResumeThread恢复线程 结束线程 1、ExitThread 2、线程函数返回,即线程正常结束,正常结束 3、线程强制结束 TerminateThread,告诉操作系统要结束线程 WaitForSingleObject TerminateThread和Exi ......
线程 基础 win 29 32

C++多线程——线程池

线程池 Thread Pool 线程池简单来说就是用来管理多个线程的,以避免频繁开辟或销毁线程的情况。 以下是创建和使用线程池的基本步骤: 创建一个任务队列,用于存储待执行的任务。 创建一组线程,这些线程会从任务队列中获取任务并执行它们。 将任务提交到任务队列中,由线程池的线程异步执行。 线程池会不 ......
线程

在多线程里面,为什么推荐使用notifyAll而不是notify

在多线程里面,为什么推荐使用notifyAll而不是notify? 结论:notify容易造成死锁 1、无论使用notify或者notifyAll,都是随机唤醒线程 2、notify是随机唤醒一个线程去执行,noifyAll是唤醒所有线程,然后去抢占锁,去执行 怎么产生死锁现象: P – 生产者 调 ......
线程 notifyAll notify

多线程下使用wait和notify为什么写在while里面,而不是if

多线程下使用wait和notify为什么写在while里面,而不是if? 1、在线程下,wait状态会进入waitset队列等待, 没有抢占到锁的线程synchronized,会进入到entryset队列 等待 2、假设有生产者和消费者。同时有多个生产者生产,多个消费者消费 3、如果是if状态,有一 ......
线程 notify while wait