lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Redis

摘要:- 前言 - 零拷贝(Zero-Copy)是一个大家耳熟能详的概念,那么,具体有哪些框架会使用到零拷贝呢?在思考这个问题之前,让我们先一起探寻一下零拷贝机制的底层原理。 - 概念篇 - 1、零拷贝是什么? "零拷贝"中的"拷贝"是指操作系统在I/O操作中,将数据从一个内存区域复制到另外一个内存区域, 阅读全文
posted @ 2021-05-31 18:41 白露~ 阅读(714) 评论(0) 推荐(0) 编辑

摘要:前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。 这次,我们就以「文件传输」作为切入点, 阅读全文
posted @ 2021-05-31 18:39 白露~ 阅读(88) 评论(0) 推荐(0) 编辑

摘要:正文如下: 前言 从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。 I/O概念 1.缓冲区 缓冲区是所有I/O的基础,I 阅读全文
posted @ 2021-05-31 18:37 白露~ 阅读(96) 评论(0) 推荐(0) 编辑

摘要:1|0何为热点key问题 从名字上可以理解,Redis中的热key就是在Redis中频繁被访问的数据,例如热点新闻,热点评论,双十一商品等等。当某一热key的请求到Server主机时,这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的主机资源不足,甚至宕机。那接下来这个key的请求, 阅读全文
posted @ 2021-05-31 18:10 白露~ 阅读(274) 评论(0) 推荐(0) 编辑

摘要:一、Redis 基础数据结构 1. StringRedis 里的字符串是动态字符串,会根据实际情况动态调整。类似于 Go 里面的切片-slice,如果长度不够则自动扩容。至于如何扩容,方法大致如下:当 length 小于 1M 的时候,扩容规则将目前的字符串翻倍;如果 length 大于 1M 的话 阅读全文
posted @ 2021-05-31 17:55 白露~ 阅读(512) 评论(0) 推荐(0) 编辑

摘要:前言 如果你是一名后端人员,对于 Redis 应该都不会陌生,Redis实战笔记,现在大部分的项目都已经运用到了 Redis 作为缓存层的搭建。面试过程中也越来越爱问关于 Redis 相关中的知识。今天我们一起来聊聊 Redis 集群中那些爱考,并且都需要知道的相关知识。 1、什么是Redis,Re 阅读全文
posted @ 2021-05-31 17:36 白露~ 阅读(838) 评论(0) 推荐(0) 编辑

摘要:本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内 阅读全文
posted @ 2021-05-31 17:32 白露~ 阅读(71) 评论(0) 推荐(0) 编辑

摘要:redis作为一个高性能内存数据库,在实际业务中应用的非常广泛,虽然redis的性能很好,但是在实际使用过程中,如果使用不当,也会造成一些性能问题,比如数据中存在大key。什么是大key?顾名思义就是单个key中的数据比较大,通常来说,单个key的value值不会很大,这种情况下,key的读取,删除 阅读全文
posted @ 2021-05-31 17:21 白露~ 阅读(5560) 评论(1) 推荐(0) 编辑

摘要:什么是 Redis 大 key单个key 存储的 value 很大hash, set,zset,list 结构中存储过多的元素可能存在 Redis 大 key 的业务场景1.配送范围特别大的门店2.促销活动特别多的门店、商家等3.高频用户下的订单列表... Redis 大 key 的危害OPS 低也 阅读全文
posted @ 2021-05-31 17:18 白露~ 阅读(1558) 评论(0) 推荐(0) 编辑

摘要:Redission 1、原理 2、源码中加锁lua代码 if (redis.call('exists', KEYS[1]) == 0) then redis.call('hset', KEYS[1], ARGV[2], 1); redis.call('pexpire', KEYS[1], ARGV[ 阅读全文
posted @ 2021-05-14 18:15 白露~ 阅读(1395) 评论(0) 推荐(0) 编辑

摘要:普通实现 说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下: - 获取锁(unique_value可以是UUID等) SET resource_name unique_value NX 阅读全文
posted @ 2021-05-14 18:08 白露~ 阅读(890) 评论(0) 推荐(0) 编辑

摘要:为什么需要分布式锁 引入经典的秒杀情景,100件商品供客户抢。如果是单机版的话,我们使用synchronized 或者 lock 都可以实现线程安全。但是如果多个服务器的话,synchronized 和 lock 就不管用了(废话,怎么可能管用,都不在同一段代码了)。 分布式锁就是被设计出来实现多个 阅读全文
posted @ 2021-05-14 13:42 白露~ 阅读(132) 评论(0) 推荐(0) 编辑

摘要:1. 本地锁 常用的即 synchronize 或 Lock 等 JDK 自带的锁,只能锁住当前进程,仅适用于单体架构服务。 而在分布式多服务实例场景下必须使用分布式锁 哦哟!才知道,原来大厂的Redis分布式锁都这么设计 2 分布式锁 2.1 分布式锁的原理 厕所占坑理论 可同时去一个地方“占坑” 阅读全文
posted @ 2021-05-14 13:41 白露~ 阅读(296) 评论(0) 推荐(0) 编辑

摘要:什么是分布式锁 说到Redis,我们第一想到的功能就是可以缓存数据,除此之外,Redis因为单进程、性能高的特点,它还经常被用于做分布式锁。 锁我们都知道,在程序中的作用就是同步工具,保证共享资源在同一时刻只能被一个线程访问,Java中的锁我们都很熟悉了,像synchronized 、Lock都是我 阅读全文
posted @ 2021-05-14 13:40 白露~ 阅读(430) 评论(0) 推荐(0) 编辑

摘要:Databus和canal都能够提供实时从数据库获取变更,并提供给下游的实时消费流的功能。 本文针对两个系统实现和应用上的不同点,做了一个简单的对比: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 阅读全文
posted @ 2021-05-14 11:38 白露~ 阅读(970) 评论(1) 推荐(0) 编辑

摘要:写在前面 数据同步 是一个脏活,而且是个高风险的活 大多数情况下,应用架构设计不好,引入什么新存储,引入什么DDD,治标不治本,都是扯淡。 但万一灵验呢?这就是数据同步的需求基础。且看下面需求场景。 应用场景 业务数据发展到一定水平,需要将大部分冷热数据从熟悉的DB迁移到其他存储进行复杂查询和分析 阅读全文
posted @ 2021-05-14 11:34 白露~ 阅读(193) 评论(0) 推荐(0) 编辑

摘要:社区wiki主页:https://github.com/linkedin/Databus/wiki 背景 一个大型分布式系统往往存在多种的存储系统,mysql,tair,redis,memcache,hbase等等。一些重要的或者需要事务支持的数据操作,通常都会放到mysql处理。但是,为了满足高性 阅读全文
posted @ 2021-05-14 11:23 白露~ 阅读(355) 评论(0) 推荐(0) 编辑

摘要:在高并发业务场景下,保护系统时,常用的"三板斧"有:"熔断、降级和限流"。今天和大家谈谈常用的限流算法的几种实现方式,这里所说的限流并非是网关层面的限流,而是业务代码中的逻辑限流。 限流算法常用的几种实现方式有如下四种: 计数器 滑动窗口 漏桶 令牌桶 下面会展开说每种算法的实现原理和他们自身的缺陷 阅读全文
posted @ 2021-05-12 17:23 白露~ 阅读(402) 评论(0) 推荐(0) 编辑

摘要:Redis实现分布式锁 最近看分布式锁的过程中看到一篇不错的文章,特地的加工一番自己的理解: Redis分布式锁实现的三个核心要素: 1.加锁 最简单的方法是使用setnx命令。key是锁的唯一标识,按业务来决定命名,value为当前线程的线程ID。 比如想要给一种商品的秒杀活动加锁,可以给key命 阅读全文
posted @ 2021-05-12 15:23 白露~ 阅读(273) 评论(0) 推荐(0) 编辑

摘要:1.限流2.限流算法 2.1计数器 2.2 漏桶算法 2.3 令牌桶算法 2.4、滑动时间窗 2.5、三色速率标记法三、限流实现 3.1 RateLimiter简介(guava的令牌桶实现) 3.2 基于 redis 的分布式限流 3.3 Spring Cloud GateWay整合redis内置R 阅读全文
posted @ 2021-05-12 14:23 白露~ 阅读(2101) 评论(0) 推荐(0) 编辑