目录一、业务背景二、分析流程加锁超时问题解决方案:增加一个「续时」三、设计方案四、实操相关属性类配置核心切面拦截的操作五、开始测试六、总结一、业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。二、分析流程使用 Redis 作为分布式锁,将锁的状态放到 Re ......
315
0
0
2023-01-31
搬运,redis做消息队列的几种方法和优缺点从最简单的开始:List 队列首先,我们先从最简单的场景开始讲起。如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 List 这个数据类型。因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。如果把 List ......
418
0
0
2023-01-24
前言前几天我在知乎看到一个问题:如何建立自己的知识体系和观点?^1^如何建立自己的知识体系和观点?在一篇高赞回答中讲述了建立“外脑”是关键,文章观点认为:大脑是用来思考的,不是用来记忆的。查理芒格我很认同这样的看法,我的账号名为“杨同学technotes”,technotes^2^ 源于我最近几年总结的 github 项目,意为“技术笔记”,这便是我的“外脑 ......
341
0
0
2023-01-14
作者:贲绍华爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、集群架构的一些基本概念当我们只使用一台 Redis 实例也就是 Single 架构时,需要考虑一些非常实际的问题,如:单节点一但宕机则业务停摆、单节点的容量不可能是无限制的、性能 ......
398
0
0
2023-01-08
大家好,我是杰哥。Redis 现在应该是各大厂标配了,不过可能很多人只懂得怎么用,但对其原理不甚了解,今天我们就用图解的形式来深入了解 Redis 高性能,高可用的秘密什么是 Redis?Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它 ......
409
0
0
2023-01-05
一、SDS介绍Redis没有使用C语言传统的字符串表示(以空字符结尾的字符串数组,以下简称C字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS作为Redis默认的字符串表示。在 Redis 里面, C字符串只会作为字符串字面量(string literal), 用在一些无须对字符串值进 ......
486
0
0
2023-01-03
Redis网络连接层Redis取自Remote Dictionary Server,顾名思义,Redis是运行在网络环境之上的。Redis目前支持3种网络连接类型:TCP:默认监听TCP 6379端口,接收网络请求,提供服务。Unix Socket:可以用作测试,以及使用Unix Socket做配置变更等。TLS:使用TLS加密的网络连接,可以防止网络链路上 ......
475
0
0
2022-12-31
Hello 大家好,我是阿粉,Redis 作为工作中不可缺少的缓存组件,相信很多小伙伴都会使用到,我们日常使用的时候都是通过代码或者客户端去链接 Redis 服务器来操作数据的。那么一条简单的set name ziyou 命令是如何执行的,中间都经历了哪些过程想必很少会有人去了解。今天阿粉就带大家看一下一条简单的set name ziyou 命令是如何执行的 ......
353
0
0
2022-12-28
今天我们讨论一下 redis 面试高频题,为什么 Redis 那么快?首先,你可以先想一下答案,我先说下大家普遍的答案:单线程基于内存操作,速度快I/O 多路复用相信很多人第一时间回答出来上面这些,那么面试官一般会接着问,所有的操作都是单线程吗?单线程为什么快呢,什么是 I/O 多路复用?很多人这个时候就会 G 了。今天我们好好聊聊,首先我们要知道,我们常说 ......
405
0
0
2022-12-23
为什么要有过期策略?因为我们的redis是一个内存型数据库,我们的数据都是放在内存里面的!但是内存是有大小的! 比如,redis有个很重要的配置文件,redis.conf,里面有个配置# maxmemory <bytes> //redis占用的最大内存 如果我们不淘汰,那么它的数据就会满,满了肯定就不能再放数据,发挥不了redis的作用! 比如 ......
352
0
0
2022-12-22
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。 本篇内容包括:关于 Redis 与 分布式锁,Redis 分布式锁的问题及解决方式,Redis 中的 Lua 脚本 以及 Redis 中的 RedLock 算法!文章目录一、关于 Re ......
332
0
0
2022-12-20
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。Redis支持三种集群方案主从复制模式Sentinel(哨兵)模 ......
379
0
0
2022-12-17
一、引言在最近的业务中,笔者接到了一个需要处理约十万条数据的需求。这些数据都以字符串的形式给到,并且处理它们的步骤是异步且耗时的(平均处理一条数据需要 25s 的时间)。如果以串行的方式实现,其耗时是相当长的:总耗时时间 = 数据量 × 单条数据处理时间 T = N * t (N = 100,000; t = 25s) 总耗时时间 = 2,500,000 秒 ......
350
0
0
2022-12-17
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博、最新的用户关系都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢?Redis 性能的基本面在讨论优化之前,我们需要知道,Redis ......
350
0
0
2022-12-15
Redis什么是?它有哪些优缺点?它凭什么这么快?使用Redis如何持久化?道友们!让我们深入探索一波呗!# 1.什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串, ......
457
0
0
2022-12-13