经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Redis

小公司后端架构、代码、流程吐槽

自从入职以来越来越难顶小公司的后端架构、代码结构 前提 任何的架构、代码,都离不开业务,用户量,所以需要提前说明一下 就我一个后端开发,需要负责日常开发、运维、架构方案设计 两年多经验,可能一些东西考虑的不是很周全,只根据当下的认知吐槽,可能下个月觉得现在幼稚 后台用户量不过万,物联网行业 ...[2024/8/26]

深入分析与解决方案:缓存与数据库双写不一致问题

我们上次探讨了 Redis 的常见问题,本章将深入分析更细致的细节,例如如何从业务角度有效处理缓存与数据库之间的双写不一致问题。接下来,让我们深入研究这个话题。 key重建优化 开发人员通常使用“缓存+过期时间”的策略,以便既能加速数据读写,又能确保数据的定期更新。这种模式基本上能够满足绝大部...[2024/8/20]

Redis系列:使用Stream实现消息队列 (图文总结+Go案例) - Hello-Brand

★ Redis24篇集合 1 先导 我们在《Redis系列14:使用List实现消息队列》这一篇中详细讨论了如何使用List实现消息队列,但同时也看到很多局限性,比如: 不支持消息确认机制,没有很好的ACK应答 不支持消息回溯,无法排查问题和做消息分析 List按照FIFO机制执行,所以存在...[2024/8/7]

(六)Redis 消息队列 List、Streams

Redis 适合做消息队列吗?有什么解决方案?首先要明白消息队列的消息存取需求和工作流程。 1、消息队列 我们一般把消息队列中发送消息的组件称为生产者,把接收消息的组件称为消费者,下图是一个通用的消息队列的架构模型: 消息队列在存取消息时,必须要满足三个需求,分别是消息保序、处理重复的消息和...[2024/7/31]

记一次 Redisson 线上问题 → 你怎么能释放别人的锁

记一次 Redisson 线上问题 → 你怎么能释放别人的锁

开心一刻 今天,我的又一个好哥们脱单了,只剩下我自己单身了 我向一个我喜欢的女生吐苦水 我:我这辈子是找不到女朋友了 她:怎么可能,你很优秀的,会有很多女孩子愿意当你女朋友的 我内心窃喜,问道:那你愿意当我女朋友吗 她:我都在开导你了,你不要恩将仇报! 线上问题 生产环境突然告警...[2024/7/22]

记一次 redis 事件注册不当导致的内存泄露

线上的程序跑着跑着内存越来越大,并且没有下降的趋势,重启一下程序也只能短暂恢复。通过 htop 命令再按一下 M 键按内存占用大小排个序,程序会占好几个G。那好,让我们来分析一下。 收集dump 通过 top 或 htop 进程管理器,或 ps 命令查找到目标进程 id,然后使用如下命令生成 ...[2024/7/19]

接口防刷!利用redisson快速实现自定义限流注解

接口防刷!利用redisson快速实现自定义限流注解

问题: 在日常开发中,一些重要的对外接口,需要加上访问频率限制,以免造成资??损失。 如登录接口,当用户使用手机号+验证码登录时,一般我们会生成6位数的随机验证码,并将验证码有效期设置为1-3分钟,如果对登录接口不加以限制,理论上,通过技术手段,快速重试100000次,即可将验证码穷举出来。...[2024/7/19]

SSRF结合Redis未授权的打法

目录SSRF + Redis未授权 案例怎么构造 redis 数据包?Reference SSRF不难理解,服务器端请求伪造(英语:Server-side Request Forgery,简称SSRF)是攻击者滥用服务器功能来访问或操作无法被直接访问的信息的方式之一。 服务器端请求伪造攻...[2024/7/15]

Java Redis多限流

Java Redis多限流

Java Redis多限流 在Java中实现Redis多限流通常涉及使用Redis的某些特性,如INCR、EXPIRE、Lua脚本或者更高级的Redis数据结构如Redis Bitmaps、Redis Streams结合Redis Pub/Sub,或者使用Redis的第三方库如Redis Rat...[2024/7/12]

Redis巡检检查 redis-check-aof

一、AOF 1、AOF  是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。...[2024/7/12]

【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)

介绍一个简单的工具,用于将Redis数据从一个redis端点复制到另一个redis端点,基于原始存储库转换为.NET 8:https: github.com/LuBu0505/redis-copy-net8   Redis Copy .NET8 Redis Copy 控制台工具...[2024/7/11]

Redis 高阶应用

生成全局唯一 ID 全局唯一 ID 需要满足以下要求: 唯一性:在分布式环境中,要全局唯一 高可用:在高并发情况下保证可用性 高性能:在高并发情况下生成 ID 的速度必须要快,不能花费太长时间 递增性:要确保整体递增的,以便于数据库创建索引 安全性:ID 的规律...[2024/7/8]

35个Redis企业级性能优化点与解决方案

Redis作为企业级应用中广泛使用的高性能键值存储数据库,其性能优化是一个复杂且多面的话题。以下是V 哥整理的一些关键的优化点和相应的解决方案,提供给兄弟们参考。 Redis的性能优化涉及到硬件选择、配置调整、客户端优化、持久化策略等多个层面。 1. 硬件优化 解决方案:选择更快的CPU...[2024/6/26]

【长文】带你搞明白Redis

本文使用第一人称来介绍Redis 一、概述 Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 与MySQL数据库不同的是...[2024/6/25]

Redisson 限流器源码分析

Redi on 限流器源码分析 对上篇文章网友评论给出问题进行解答:redis 的key 是否会过期 可以先阅读上篇文章: redis + AOP + 自定义注解实现接口限流 - 古渡蓝按 - 博客园 (cnblogs.com) 注解AOP 代码部分提取 调用Reids工具类的ra...[2024/6/5]

(三)Redis 线程与IO模型

1、Redis 单线程 通常说 Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,其他功能,比如持久化、异步删除、集群数据同步等,是由额外的线程执行的,所以严格来说,Redis 并不是单线程。 多线程开发会不可避免的带来并发控制和资源开销的问题,如果没...[2024/6/5]

分享5款.NET开源免费的Redis客户端组件库

前言 今天大姚给大家分享5款.NET开源、免费的Redis客户端组件库,希望可以帮助到有需要的同学。 StackExchange.Redis StackExchange.Redis是一个基于.NET的高性能Redis客户端,提供了完整的Redis数据库功能支持,并且具有多节点支持、异步编程模型...[2024/5/31]

StackExchange.Redis跑起来,为什么这么溜?

StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持 Redis 的绝大部分功能,包括发布/订阅、事务、Lua ...[2024/5/27]

RediSearch的简单使用与总结

前言 之前就有考虑过想要研究下RediSearch,号称高性能全文索引的功能,这几天闲来无事调研了一番。 RediSearch 介绍 RediSearch 是 Redis Labs 提供的一款强大且高效的搜索和全文索引引擎。它是一个基于 Redis 的模块,允许用户在 Redis 数据库中进行...[2024/5/15]

Redis网络模型

主从复制原理 建立连接 从节点在配置了 replicaof 配置了主节点的ip和port 从库执行replicaof 并发送psync命令 同步数据到从库 主库bgsave生成RDB文件,并发送给从库,同时为每一个slave开辟一块 replication buffer 缓冲区记...[2024/5/13]

.NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)

.NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)

.NET缓存里分了几类,主要学习内存缓存、分布式缓存 一、内存缓存 IMemoryCache 1、Program注入缓存 builder.Services.AddMemoryCache(); 2、相关方法及参数 Get、TryGetValue、GetOrCreate、GetOrCreate...[2024/5/11]

记一次线上Redis内存占用过高、大Key问题的排查

记一次线上Redis内存占用过高、大Key问题的排查

问题背景 在一个风和日丽的下午,公司某项目现场运维同学反馈,生产环境3个Redis的Sentinel集群节点内存占用都很高,达到了17GB的内存占用量。 稍加思索,应该是某些Key的Value数据体量过大,占用了过多的内存空间,我们在使用Redis的过程中,单个Value或者单个集合中的元素应...[2024/5/11]

经验之谈:我为什么选择了这样一个激进的缓存大Key治理方案

一、引言 本文将结合我的一次Redis大Key的治理经验,来浅谈一下缓存大Key的治理方案选择。文中主要包括缓存大Key基础知识、大Key治理方案选择、大Key治理案例等,适合有一定开发经验的开发者阅读,希望对大家有帮助。 二、缓存大Key基础知识 2.1 大Key的标准 集合类型元素数量&g...[2024/5/6]

【进阶篇】基于 Redis 实现分布式锁的全过程

目录前言一、关于分布式锁二、RedLock 红锁(不推荐)三、基于 setIfAbsent() 方法四、使用示例4.1RedLock 使用4.2setIfAbsent() 方法使用五、文章小结 前言 这一篇文章拖了有点久,虽然在项目中使用分布式锁的频率比较高,但整理成文章发布出来还是花了一点...[2024/5/6]

Higress 基于自定义插件访问 Redis

简介 基于 wasm 机制,Higre 提供了优秀的可扩展性,用户可以基于 Go/C++/Rust 编写 wasm 插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持 redis 调用,使得用户能够编写有状态的插件,进一步提高了 Higre 的扩展能力。 文档在插件中调用...[2024/4/29]

美团二面:如何保证Redis与Mysql双写一致性?连续两个面试问到了!

引言 Redis作为一款高效的内存数据存储系统,凭借其优异的读写性能和丰富的数据结构支持,被广泛应用于缓存层以提升整个系统的响应速度和吞吐量。尤其是在与关系型数据库(如MySQL、PostgreSQL等)结合使用时,通过将热点数据存储在Redis中,可以在很大程度上缓解数据库的压力,提高整体系统...[2024/4/17]

聊聊 Redis Stream

聊聊 Redis Stream

Redis Stream 是 Redis 5.0 版本中引入的一种新的数据结构,它用于实现简单但功能强大的消息传递模式。 这篇文章,我们聊聊 Redis Stream 基本用法 ,以及如何在 SpringBoot 项目中应用 Redis Stream 。 1 基础知识 Redis Str...[2024/4/15]

淘宝二面:MySQL里有2000万条数据,但是Redis中只存20万的数据,如何保证redis中的数据都是热点数据?

引言 在当今互联网领域,尤其在大型电商平台如淘宝这样的复杂分布式系统中,数据的高效管理和快速访问至关重要。面对数以千万计的商品、交易记录以及其他各类业务数据,如何在MySQL等传统关系型数据库之外,借助内存数据库Redis的力量,对部分高频访问数据进行高效的缓存处理,是提升整个系统性能的关键一环...[2024/4/15]

面试官:Redis如何实现延迟任务?

延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务。也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行。 延迟任务的常见使用场景有以下几个: 定时发送通知或消息: 发送定时短信、邮件或应用内消息,如注册确认、订单状态更新、促销活动通知等...[2024/4/10]

高可用之战:Redis Sentinal(哨兵模式) - Hello-Brand

★ Redis24篇集合 1 背景 在我们的《Redis高可用之战:主从架构》篇章中,介绍了Redis的主从架构模式,可以有效的提升Redis服务的可用性,减少甚至避免Redis服务发生完全宕机的可能。 它主要包含如下能力: 1. 故障隔离和恢复:无论主节点或者从节点宕机,其他节点依然可以...[2024/4/10]

如何保证MySQL和Redis数据一致性?

背景 在高并发的业务场景中,因为MySQL数据库是操作磁盘效率比较低,因此大多数情况下数据库都是高并发系统的瓶颈。因为Redis操作数据是在内存中进行,所以就需要使用Redis做一个缓存。让请求先访问到Redis,而不是直接访问MySQL数据库。效果图如下 查询数据 上面的业务场景,就是...[2024/4/3]

Redis高可用之战:主从架构 - Hello-Brand

Redis高可用之战:主从架构 - Hello-Brand

★ Redis24篇集合 1 主从模式介绍 在笔者的另外两篇文章 《Redis系列:RDB内存快照提供持久化能力》、《Redis稳定性之战:AOF日志支撑数据持久化》中,我们介绍了Redis中的数据持久化技术,包括 RDB快照 和 AOF日志 。有了这两个利器,我们再也不用担心机器宕机,数据丢...[2024/3/29]

美团一面:项目中使用过Redis吗?我说用Redis做缓存。他对我哦了一声

引言 Redis,作为一种开源的、基于内存且支持持久化的键值存储系统,以其卓越的性能、丰富灵活的数据结构和高度可扩展性在全球范围内广受欢迎。Redis不仅提供了一种简单直观的方式来存储和检索数据,更因其支持数据结构如字符串、哈希、列表、集合、有序集合等多种类型,使得其在众多场景下表现出强大的适用...[2024/3/29]

京东二面:Redis为什么快?我说Redis是纯内存访问的,然后他对我笑了笑。。。。。。

引言 Redis是一个高性能的开源内存数据库,以其快速的读写速度和丰富的数据结构支持而闻名。作为一个轻量级、灵活的键值存储系统,Redis在各种应用场景下都展现出了惊人的性能优势。无论是作为缓存工具、会话管理组件、消息传递媒介,还是在实时数据处理任务和复杂的分布式系统架构中,Redis均扮演了至...[2024/3/29]

超高并发下,Redis热点数据风险破解 - Hello-Brand

★ Redis24篇集合 1 介绍 作者是互联网一线研发负责人,所在业务也是业内核心流量来源,经常参与 业务预定、积分竞拍、商品秒杀等工作。 近期参与多场新员工的面试工作,经常就 『超高并发场景下热点数据』 可用性保障与候选人进行讨论。 本文聚焦一些关键点技术进行讨论,并总结一些热点场景...[2024/3/25]

为什么延迟删除可以保证MYSQL 与redis的一致性?

看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除,其实脱离任何业务场景的设计都是不切实际的,所以我会本着一个通用的读写场景去分析为什么延迟删除大概率可以保证MYSQL与redis的最终一致。 通常的读写场景 通常在使用redis作为读写缓存时,我们采用的是cache asi...[2024/3/22]

Garnet发布 Redis不再是唯一选择

Garnet 是 Microsoft Research 的远程缓存存储,提供强大的性能(吞吐量和延迟)、可扩展性、存储、恢复、集群分片、密钥迁移和复制功能。 Garnet 可以与现有的 Redis 客户端配合使用。 Garnet 是 Microsoft Research 推出的一种新型远程...[2024/3/20]

Garnet: 力压Redis的C#高性能分布式存储数据库

今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改。根据其官网的信息,简单的介绍一下它。 开源仓库地址:https: github.com/microsoft/garnet 文档地址:https: m...[2024/3/20]

Redis集群模式和常用数据结构

一、Redis 支持三种主要的集群模式 主从复制模式(Master-Slave Replication): 在这种模式下,主节点(Master)负责处理写入操作,而从节点(Slave)则是主节点的副本,用于处理读取操作和提供数据冗余。这种模式通过复制主节点的数据到多个从节点来提高数据的可...[2024/3/20]

Redis 常见数据类型(对象类型)和应用案列

前言: 每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠 Redis 即可做到。 在技术领域,我们经常听到「键值存储」 这个词。但在 Redis 的世界里,这只是冰山一角。Redis 的对象,不仅仅是简单的数据,它们是为各种任务...[2024/3/11]

Redis系列:RDB内存快照提供持久化能力 - Hello-Brand

★ Redis24篇集合 1 介绍 从上一篇的 《深刻理解高性能Redis的本质》 中可以知道, 我们经常在数据库层上加一层缓存(如Redis),来保证数据的访问效率。 这样性能确实也有了大幅度的提升,因为从内存中取数远比从磁盘中快的多,但是本身Redis也是一层服务,也存在宕机、故障的可能...[2024/3/7]

Redisson分布式锁

Redi on分布式锁 来自Githup官方文档的介绍: Redi on是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap,...[2024/3/1]

面试必备:一线大厂Redis缓存设计规范与性能优化 - 江-小北

说在前面 你是否在使用Redis时,不清楚Redis应该遵循的设计规范而苦恼? 你是否在Redis出现性能问题时,不知道该如何优化而发愁? 你是否被面试官拷问过Redis的设计规范和性能优化而回答不出来 别慌,看这篇文章就行了 本文,已收录于,我的技术网站 aijiangsir.com...[2024/3/1]

【进阶篇】使用 Redis 实现分布式缓存的全过程思考(一)

目录前言一、关于缓存二、基本数据结构三、缓存注解3.1自定义注解3.2定义切点(拦截器)3.3 AOP 实现3.4使用示例四、数据一致性4.1缓存更新策略4.2缓存读写过程五、高可用5.1缓存穿透5.2缓存击穿5.3缓存雪崩5.4Redis 集群六、文章小结 前言 写在前面,让我们从 3 个...[2024/2/28]

Redis加Lua脚本实现分布式锁

先讲一下为什么使用分布式锁: 在传统的单体应用中,我们可以使用Java并发处理相关的API(如ReentrantLock或synchronized)来实现对共享资源的互斥控制,确保在高并发情况下同一时间只有一个线程能够执行特定方法。然而,随着业务的发展,单体应用逐渐演化为分布式系统,多线程、多进...[2024/2/28]

Redis分布式锁的正确使用姿势

前言 分布式锁在日常开发中,用处非常的多。包括但不限于抢红包,秒杀,支付下单,幂等,等等场景。 分布式锁的实现方式有多种,包括redis实现,mysql实现,zookeeper实现等等。而其中redis非常适合作为分布式锁使用,并且在各个公司都大规模的使用。 本文将由浅入深的探究Redis分...[2024/2/26]

Redis的Java客户端-Jedis

Redis的Java客户端-Jedis 在Redis官网中提供了各种语言的客户端,地址:https: redis.io/doc client 其中Java客户端也包含很多: 标记为?的就是推荐使用的java客户端,包括: Jedis和Lettuce:这两个主要是提供了Redis命...[2024/2/5]

【经典问题】mysql和redis数据一致性问题

前言 MySQL和Redis数据一致性算是个很经典的问题,在之前也看到过很多相关的文章,最近心血来潮,想把一致性问题的解决方案和存在问题都总结一下。 不推荐方案 1 先更新MySQL,再更新Redis。 如上图有两个请求要同时进行更新操作,在并发情况下,B请求虽然更新时间晚于A请求,但是可...[2024/1/5]

redis + AOP + 自定义注解实现接口限流

限流介绍 限流(rate limiting) ? 是指在一定时间内,对某些资源的访问次数进行限制,以避免资源被滥用或过度消耗。限流可以防止服务器崩溃、保证用户体验、提高系统可用性。 限流的方法有很多种,常见的有以下几种: 漏桶算法: ? 漏桶算法通过一个固定大小的漏桶来模...[2024/1/5]

架构与思维:如何应对Redis热Key? - Hello-Brand

★ Redis系列文章 Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6...[2023/12/26]

357
2
记录数:746 页数:1/1512345678910下一页尾页
 友情链接:直通硅谷  点职佳
加载更多