首页
学习
活动
专区
工具
TVP
发布

IT大咖说

专栏成员
915
文章
1587016
阅读量
99
订阅数
Redis 内存淘汰策略,从根儿上理解
◆ 前言 本文参考源码版本 redis6.2 Redis 基于内存设计,所有数据存放在内存,随着时间推移,内存占用也越来也高 ... 由于内存容量这个物理限制,我们需要在内存使用量达到一定比例后,做一些内存清理工作,以保证有足够的空间来完成正常的处理。 在 Redis 中,完成这个工作的就是本文的主角 ------- Redis 内存淘汰机制。 一定比例:在 redis 中就是 maxmemory 阈值 淘汰策略:在 redis 中目前有两种流行的算法:LRU 与 LFU 算法 如果让你来设计一款内存淘汰策
IT大咖说
2022-09-22
7860
RedisJson 横空出世,比 ES 快7 倍,惊爆了
近期官网给出了RedisJson(RedisSearch)的性能测试报告,可谓碾压其他NoSQL,下面是核心的报告内容,先上结论: 对于隔离写入(isolated writes),RedisJSON 比 MongoDB 快 5.4 倍,比 ElasticSearch 快 200 倍以上。 对于隔离读取(isolated reads),RedisJSON 比 MongoDB 快 12.7 倍,比 ElasticSearch 快 500 倍以上。 在混合工作负载场景中,实时更新不会影响 RedisJSON 的搜
IT大咖说
2022-09-06
8400
缓存层场景实战读缓存,如何更新缓存+缓存的高可用设计+监控
◆ 如何更新缓存 更新缓存的步骤特别简单,共两步:更新数据库和更新缓存。但这简单的两步中需要考虑很多问题。 1)先更新数据库还是先更新缓存?更新缓存时先删除还是直接更新? 2)假设第一步成功了,第二步失败了怎么办? 3)假设两个线程同时更新同一个数据,A线程先完成第一步,B线程先完成第二步怎么办? 其中,第1个问题就存在5种组合方案,下面逐一进行介绍(以上3个问题因为紧密关联,无法单独考虑,下面就一起说明)。 ◆ 组合1:先更新缓存,再更新数据库 对于这个组合,会遇到这种情况:假设第二步更新数据库失败了,要
IT大咖说
2022-08-31
7910
Web版Linux、数据库、Redis、MongoDB统一管理操作平台
◆ 一、开源项目简介 基于DDD分层实现的web版 linux(终端 文件 脚本 进程)、数据库(mysql postgres)、redis(单机 集群)、mongo统一管理操作平台 ◆ 二、开源协议 使用Apache-2.0开源协议 ◆ 三、界面展示 ◆ 系统核心功能截图 记录操作记录 ◆ 机器操作 状态查看 ssh终端 文件操作 ◆ 数据库操作 sql编辑器 在线增删改查数据 Redis操作 Mongo操作 ◆ 系统管理 账号管理 角色管理 资源管理 ◆ 四、功能概述 功能介
IT大咖说
2022-08-26
8980
Redis 使用管道(Pipeline)方式提升操作性能
Redis是一个非常流行的key-value存储系统,而作为其官方推荐的Java版客户端 Jedis也非常强大和稳定。 在单个客户端中,如果需要读写大量数据,可以考虑采用管道(Pipeline)方式。如果采用管道方式,那么多条命令可以通过批量的方式一次性地发送到服务器,而结果也会一次性返回到客户端。 ◆ 本文将介绍Redis 使用管道(Pipeline)方式提升操作性能。 ◆ 一、管道(Pipeline) 未使用管道方式执行N条命令,如图所示: 管道(Pipeline):一次向Redis发送多条命令。
IT大咖说
2022-08-26
1.2K0
如何提高数据库性能的系统设计方案
◆  简介 一个有趣的面试问题,我已经听到并问过很多次了。 "你将如何提高数据库的性能?" 这个问题可能有很多答案,因为我想深入了解每个答案,所以我将分别写三篇文章,每篇都针对某一类答案。 这个要更注重架构层面的变化,管理服务等。他们会更关注云计算架构师或对系统设计概念有良好了解的人。 第三组答案将更注重于数据库和操作系统的配置。 请记住,这是一个非常广泛的话题,这是我对如何回答这个问题的看法,我将提供进一步阅读的链接,并尽可能多地提供实际的例子。 ◆  问题 问题是,"我的数据库越来越慢,你将如何提高数据
IT大咖说
2022-07-06
6060
探索云原生技术之基石——Docker容器
文章目录 什么是云原生 什么是Docker MySQL主从复制(1主1从)  Master节点配置 Slave节点配置 测试主从同步 主从同步失败问题(Slave_SQL_Running:No) Slave_SQL_Running:No的解决办法 Redis集群(3主6从) 10亿条数据怎么进行缓存 哈希取余算法(小厂采用) 一致性hash算法(中大厂采用) hash槽算法(大厂采用、和Redis集群也是采用这种) 快速搭建Redis Cluster(3主6从) 快速生成9个容器实例 查看容器实例是否全部启
IT大咖说
2022-06-09
4350
Java 工程师相见恨晚的神兵利器和使用技巧
◆ 开发神器 IDEA 配套资源 IDE Eval Reset 首先呢,对于下图的这个东西 想必我们大多数开发人员都特别熟悉,这也就是我们平时吃饭的家伙。 结合各种网上的教程,本篇幅提供一套简单省事只需两步就可以一劳永逸的方法解决上述问题。 一、话不多说,第一步先下载最新稳定版的插件下载地址。二、我们然后在 IDEA 插件模块选择从桌面上安装,如下图所示。 安装好之后要重启我们都 IDEA 可能插件才会生效,然后我们点击 help 此时会看到跟我们插件一样的名字。 点击之后,我们把序号1的位置勾上,起
IT大咖说
2022-05-30
4080
Redis 中的过期删除策略和内存淘汰机制
Redis 中 key 的过期删除策略 内存碎片如何产生 碎片率的意义 如何清理内存碎片 内存淘汰触发的最大内存 有哪些内存淘汰策略 内存淘汰算法 LRU LFU 1、定时删除 2、惰性删除 3、定期删除 Redis 中过期删除策略 从库是否会脏读主库创建的过期键 前言 Redis 中 key 的过期删除策略 内存淘汰机制 为什么数据删除后内存占用还是很高 总结 参考 Redis 中 key 的过期删除策略 ◆ 前言 Redis 中的 key 设置一个过期时间,在过期时间到的时候,Redis 是如何清除这个
IT大咖说
2022-04-22
8810
RabbitMQ 怎么保证可靠性、幂等性、消费顺序?
◆ RabbitMQ如何保证消息的可靠性# RabbitMQ消息丢失的三种情况 ◆生产者弄丢消息时的解决方法# 方法一:生产者在发送数据之前开启RabbitMQ的事务(采用该种方法由于事务机制,会导致吞吐量下降,太消耗性能。) 方法二:开启confirm模式(使用springboot时在application.yml配置文件中做如下配置,实现confirm回调接口,生产者发送消息时设置confirm回调) 小结:事务机制和 confirm机制最大的不同在于,事务机制是同步的,你提交一个事务之后会阻塞在那儿
IT大咖说
2022-04-01
1.1K0
每分钟54万多条数据更新,商品系统性能如何优化?
◆背景介绍 2020年6月,商品系统从SAP、中间层等接入的商品数据越来越多且更新频繁,商品数据库主从更新数据量大,约每分钟54万多条更新,约八分钟就会产生大于1G的Binlog文件,在数据库IO能力一定的情况下,发生数据同步延迟,影响写入与读出的及时性,进而影响到商品基础系统的可用性。 如果仅是从翻阅代码的角度去分析,会花费大量人力。抛开系统本身,当商品多个应用都在读写商品库,并在数据库层起到数据汇总和集中反馈的情况下,分析这个点是一个较好的方向。 ◆分析模型 把Binlog解析成Sql 纯文本,解析出来
IT大咖说
2022-03-25
3620
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列
使用 Redis 实现消息队列 普通的订阅 基于模式(pattern)的发布/订阅 看下源码实现 分析下源码实现 stream 的结构 streamCG 消费者组 streamConsumer 消费者结构 分析下源码实现 基于List的消息队列 基于 Streams 的消息队列 发布订阅 总结 参考 ◆使用 Redis 实现消息队列 Redis 中也是可以实现消息队列 不过谈到消息队列,我们会经常遇到下面的几个问题 1、消息如何防止丢失; 2、消息的重复发送如何处理; 3、消息的顺序性问题; 关于 mq
IT大咖说
2022-03-21
1.2K0
Redis 中如何保证数据的不丢失,Redis 中的持久化是如何进行的
Redis 中数据的持久化 前言 AOF 持久化 什么是 AOF 持久化 为什么要后记录日志呢 AOF 的潜在风险 AOF 文件的写入和同步 AOF 文件重写机制 AOF 的数据还原 RDB 持久化 什么是 RDB 持久化 RDB 如何做内存快照 快照时发生数据修改 多久做一次快照 过期的键如何持久化 总结 Redis 中数据的持久化 ◆ 前言 我们知道 Redis 是内存数据库,所有操作都在内存上完成。内存的话,服务器断电,内存上面的数据就会丢失了。这个问题显然是需要解决的。 Redis 中引入了
IT大咖说
2022-03-14
1.2K0
Redis 源码分析 I/O 模型详解
◆ 主流 I/O 模型 阻塞IO、非阻塞IO、异步 IO 。 ◆ BIO 模型 同步阻塞 模型,一个客户单对应一个链接的处理线程 缺点: 1、IO 中如果进行 read 是阻塞操作,如果请求的链接操作不做任何操作,也会导致线程阻塞,浪费线程资源 2、如果线程很多,会导致服务器压力增加,比如 C10K问题 引用场景: BIO 方式运用数目比较小且固定的架构,这种方式对服务器资源要求比较高,但是程序简单容易理解。 ◆ NIO 模型 同步非阻塞,是服务器实现的模式是一个线程可以处理多个请求(链接),客户端发送的
IT大咖说
2022-03-04
6070
用Python写了一个上课点名系统(附源码)(自制考勤系统)
今天刷到了一个这样的短视频,我寻思我是不是也可以写一个类似的上课点名程序,想法经不起等待,说写就写~ ◆ 一.准备工作 私信小编01即可获取大量Python学习资源 1.Tkinter Tkinter 是 python 内置的 TK GUI 工具集。TK 是 Tcl 语言的原生 GUI 库。作为 python 的图形设计工具,它所使用的 Tcl 语言环境已经完全嵌入到了 python 解释器中。 我们使用Tkinter开发GUI界面。 2.PIL PIL(Python Image Library)库是Py
IT大咖说
2022-03-04
4K0
微服务篇:什么是同步式微服务
微服务可以通过事件(本书所建议的方法)实现成异步的形式,或者实现成同步的形式(同步服务通常出现在面向服务的架构中)。同步的微服务通常采用“请求–响应”的方法来实现,服务间通信直接通过 API 来满足业务需求。 ◆ 同步式微服务的缺点 同步式微服务有很多问题,这使得它们难以大规模地使用。这并不是说一个公司不能用同步式微服务来获得成功,Netflix、Lyft、Uber 和 Facebook等公司的成功就证明了这一点。但是也有许多公司使用过时的、混乱的意大利面式代码和单体应用发了大财,所以不要把公司的最终成功与
IT大咖说
2022-03-04
3370
Redis Cluster集群扩容主从节点详细教程
当redis数据量日渐增长,当内存不够用的时候,这时候就需要集群扩容了,cluster集群扩容可以增加内存也可以增加节点,因为redis数据都是存在内存中
IT大咖说
2021-11-26
2.9K0
一篇读懂什么是缓存穿透击穿雪崩,分布式锁
最简单的可以把数据放入一个map(本地缓存),单体应用时没有什么问题,但是当系统为分布式系统时就会出现很多问题,每一个服务都有一个自己的缓存,就会出现数据不一致等等问题,为了解决这些问题,我们使用统一的一个缓存
IT大咖说
2021-09-08
3700
分布式理论
网络分区(脑裂):网络之间不连通,导致分布式系统出现局部小集群,小集群间网络异常,小集群内部网路正常。
IT大咖说
2021-04-23
3890
秒杀场景下如何保证数据一致性?就这个问题我给出了最详细的方案
从字面意思理解,所谓秒杀,就是在极短时间内,大量的请求涌入,处理不当时容易出现服务崩溃或数据不一致等问题的高并发场景。
IT大咖说
2021-04-08
9080
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档