数据库
文章平均质量分 80
司腾
程序不是年轻的专利,但是,它属于年轻!
展开
-
阿里架构师分享分布式架构笔记文档:Nginx+Redis+ZK+Kafka+MQ等
市面上真正适合学习的Nginx资料太少,有的书或资料虽然讲得比较深入,但是语言晦涩难懂,大多数人看完这些书基本都是从入门到放弃。学透Nginx难道就真的就没有一种适合大多数同学的方法吗?原创 2023-06-24 15:22:49 · 1076 阅读 · 0 评论 -
阿里P8传授的80K+星的MySQL笔记助我修行,一周快速进阶
MySQL 是最流行的关系型数据库之一,广泛的应用在各个领域。下面这些问题对于程序员的你来说应该很常见,来看看你面对这些问题是否会胆怯?本笔记主要讲解了MySQL中的视图/存储过程/触发器/索引等对象的使用、常见的SQL语句优化的技巧 、应用优化、数据库优化、数据库日志等方面的知识,并通过综合案例,对笔记中的知识进行一个整合应用。旨在通过MySQL高级部分内容,可以在满足现有业务需求基础上,对MySQL底层的体系结构, 对底层的优化有一个深入的理解 , 对系统的整体性能进行提升。原创 2023-06-13 09:48:13 · 347 阅读 · 0 评论 -
横空出世!京东技术专家狂推的Redis笔记,实战和原理两开花
Redis 是互联网技术领域使用最为广泛的存储中间件,它是「emotectionaryervice」的首字母缩写,也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。国内外很多大型互联网公司都在使用 Redis,比如 Twitter、YouPorn、暴雪娱乐、Github、StackOverflow、腾讯、阿里、京东、华为、新浪微博等等,很多中小型公司也都有应用。原创 2023-06-08 14:32:50 · 326 阅读 · 0 评论 -
这就是实力~ 腾讯云大咖亲码 “redis深度笔记” 无废话全精华
1.分布式锁分布式锁超时问题可重入性2.延时队列异步消息队列?队列空了怎么办?队列延迟空闲连接自动断开锁冲突处理延时队列的实现进一步优化3.位图基本使用统计和查找魔术指令 bitfield使用方法pfadd这个pf是什么意思?pfmerge适合什么场合用?注意事项HyperLogLog实现原理pf的内存占用为什么是12k?5.布隆过滤器布隆过滤器是什么?Redis中的布隆过滤器布隆过滤器的基本使用注意事项布隆过滤器的原理空间占用估计实际元素超出时,误判率会怎样变化。原创 2023-05-05 10:18:20 · 773 阅读 · 0 评论 -
耗时3个月啃烂了这份Redis技术笔记,我成功上岸进了字节
正如标题所说,我现在已经如愿以偿地进了字节!之前自己一直待在一个不大不小的外包公司,每天做着重复的层删改查工作。直到22年8月初,自己通过朋友的介绍拿到了字节的面试机会,自己在家复习了3个月,成功地拿到了字节的offer,其中复习资料对我最关键的就是这份Redis技术笔记,让我触类旁通,对我的技术长进非常大的帮助!所谓「授人以鱼不如授人以渔」,鄙人就把这份Redis笔记,目的就是为了帮助后端开发者较为深入的 理解 Redis 背后的原理和实践经验,做到知其然也知其所以然,为未来进阶成长为架构师做好准备。原创 2022-11-27 16:14:24 · 111 阅读 · 0 评论 -
赞不绝口!仅靠阿里P9分享的 Redis 工作手册,拿到60W年薪Offer
昨晚有六七位小伙伴告诉我说:“大佬,有没有Redis的面试教程啊,最近面试被问到好多”这就帮小伙伴们专门整理了一份资料(不仅仅是面试题),从Redis核心原理到Redis设计与源码帮助大家梳理体系,快速提升Redis技术,68道Redis精品面试题(附解析)帮大家了解近期面试中小伙伴们遇到的问题想来应该可以帮小伙伴们更好的应对面试官的刁难,解决找工作的难题!原创 2022-11-19 14:37:29 · 935 阅读 · 0 评论 -
阿里这份Redis高级笔记简直不要太细,理解的嘎嘎透彻
为了不影响大家的阅读,就不继续拉长篇幅了!可能Redis能做的事情还有更多,一份笔记当然是无法把方方面面都概括到,如果你对Redis有独到的讲解,可以跟大家互动一手。。原创 2022-10-10 15:45:01 · 167 阅读 · 0 评论 -
一文了解 MySQL 事务和隔离级别
1. 什么是事务事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如 A 给 B 要划钱,A 的账户-1000 元, B 的账户就要+1000 元,这两个 update 语句必须作为一个整体来执行,不然 A 扣钱了,B 没有加钱这种情况就是错误的。那么事务就可以保证 A 、B 账户的变动要么全部一起发生,要么全部一起不发生。2. 事务特性事务具有 4 个属..原创 2022-01-12 14:38:50 · 156 阅读 · 0 评论 -
查询 MySQL 字段注释的 5 种方法~
很多场景下,我们需要查看 MySQL 中表注释,或者是某张表下所有字段的注释,所以本文就来盘点和对比一下查询注释的几种方式。创建测试数据库开始之前咱们先创建一个数据库,以备下面演示使用。-- 如果存在就先删除数据库drop database if exists test2022;-- 创建数据库create database test2022;-- 切换数据库use test2022;-- 创建表和字段(以及相应的注释)CREATE TABLE `student` ( `..原创 2022-01-10 14:08:47 · 309 阅读 · 0 评论 -
数据库与缓存一致性方案分享
前言 做C端相关业务,目前主流的关系型数据库在高并发的查询请求场景下,很难做到低延迟的高并发,甚至有可能被打挂。因此引入缓存中间件是一个常见的解决方案,但如何保证缓存与数据库的一致性,便成为了一个棘手的问题,这次我们拿常见的Mysql和Redis举例。正文 保持缓存和数据库的一致性,最简单的做法就是直接在业务中去双写或删除保持一致性;如果要跟业务解耦,就要采用订阅binlog或者定时刷新的方式完成。业务耦合的一致性方案业务中耦合更新缓存 其中...原创 2022-01-08 20:49:59 · 116 阅读 · 0 评论 -
面试官:Redis 分布式锁如何自动续期?
1、Redis 实现分布式锁 指定一个 key 作为锁标记,存入 Redis 中,指定一个 唯一的用户标识作为 value。 当 key 不存在时才能设置值,确保同一时间只有一个客户端进程获得锁,满足互斥性特性。 设置一个过期时间,防止因系统异常导致没能删除这个 key,满足防死锁特性。 当处理完业务之后需要清除这个 key 来释放锁,清除 key 时需要校验 value 值,需要满足只有加锁的人才能释放锁 。 2、问题如果这个锁的过期时间是30秒,但是业务运行超原创 2021-12-23 21:46:10 · 237 阅读 · 0 评论 -
RTO, RPO是啥?是割韭菜的意思么?
从嫩芽初发到绿意灼灼,韭菜到底经历了什么?想IPO想疯了的创业者最清楚。第一次听到RPO,我以为是专门割韭菜的IPO,加上说这话的人不断对我挤眉弄眼,以至于我手抖,怎么搜都搜不到这个技术名词。到了最后我才弄明白,他说的是RPO,而不是IPO,是灾备场景中的名词。好家伙,又是缩写!不过经过多年的宣传,它俨然成了标准,反而全称没几个人记得住。打个比方,你知道HIV,但是并不知道HIV的英文全称是啥,就是这么朗朗上口。但我们今天就非要看一下它的全称。RTO = Recovery Time O原创 2021-12-20 21:50:36 · 424 阅读 · 0 评论 -
MySQL事务相关概念
什么是事务事务是一组数据库操作序列,是一个不可分割的单位。这些操作要么全做,要么不做。事务的ACID特性原子性(Atomicity)事务必须作为一个完整的、不可分割的单位被执行。事务中所做的这些操作,要么全做,要么不做。一致性(Consistency)事务操作前后数据库应该由一个一致的状态转变为另一个一致的状态。一致状态的含义是数据库中的数据数据应满足完整性约束。隔离性(Isolation)多个事务并发执行时,一个事务的执行不能影响其他事务的执行。持久性(Durabili原创 2021-12-18 21:45:16 · 1010 阅读 · 0 评论 -
数据库读写分离同步延时问题怎么解决?
数据库读写分离是很多公司绕不过去的一个发展阶段,从单体数据库,到主备模式,再到读写分离,分库分表。每一个阶段都能为我们解决一些问题,但也带来了新的挑战。本篇文章我们就主要研究一下数据库读写分离及其带来的问题如何解决。1 数据库架构的发展历程首先简单介绍一下数据库架构的发展历程,基本就是单体、主备、读写分离、分库分表,下面我们分别进行介绍。1.1 单体架构业务发展初期,数据库的压力相对较小,这时候使用单独一个库就可以。引出的问题:如果数据库出现故障,我们的业务就不能使用,只能说.原创 2021-12-18 14:13:31 · 3941 阅读 · 0 评论 -
MySQL为啥不能用uuid做主键?
前言在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。本篇博客的目录mysql程序实例使用uuid和自增id的索引结构对比总结一、mysql和程序实例1.1.要说明这个问题,我们首先来建立三张表分别是user_auto_key,u..原创 2021-12-17 15:51:58 · 146 阅读 · 0 评论 -
Mybatis调试经常需要输出SQL语句,但你知道是怎么输出的嘛?
Java 开发中常用的几款日志框架有很多种,并且这些日志框架来源于不同的开源组织,给用户暴露的接口也有很多不同之处,所以很多开源框架会自己定义一套统一的日志接口,兼容上述第三方日志框架,供上层使用。一般实现的方式是使用适配器模式,将各个第三方日志框架接口转换为框架内部自定义的日志接口。MyBatis 也提供了类似的实现,这里我们就来简单了解一下。适配器模式是什么?简单来说,适配器模式主要解决的是由于接口不能兼容而导致类无法使用的问题,这在处理遗留代码以及集成第三方框架的时候用得比较多。其核心原理原创 2021-12-08 16:04:02 · 155 阅读 · 0 评论 -
Redis的高性能怎么做到的?
Redis的高性能怎么做到的?Redis这个NOSQL数据库在计算机界可谓是无人不知,无人不晓。只要涉及到数据那么就需要数据库,数据库类型很多,但是NOSQL的kv内存数据库也很多,redis作为其中一个是怎么做到行业天花板的呢?是怎么做到高性能的呢?怎么做到高可用的呢?今天这篇八股文我就整理一些redis的设计写写,本篇还是偏关于高性能这一块。高效数据结构Redis的数据库相比传统的关系数据库,在数据结构上也是比较特殊的,它的所有数据类型都可以看做是一个map的结构,key作为查询条件。原创 2021-11-27 19:12:12 · 382 阅读 · 0 评论 -
MySQL索引——如何提高查询速度
索引是什么?如果你去过图书馆,应该会知道图书馆的检索系统。图书馆为图书准备了检索目录,包括书名、书号、对应的位置信息,包括在哪个区、哪个书架、哪一层。我们可以通过书名或书号,快速获知书的位置,拿到需要的书MySQL 中的索引,就相当于图书馆的检索目录,它是帮助 MySQL 系统快速检索数据的一种存储结构。我们可以在索引中按照查询条件,检索索引字段的值,然后快速定位数据记录的位置,这样就不需要遍历整个数据表了。而且,数据表中的字段越多,表中数据记录越多,速度提升越是明显举个例子:全家某个门店的销售原创 2021-11-26 21:16:45 · 2898 阅读 · 0 评论 -
Redis支撑秒杀场景的关键技术和实践都有哪些?
秒杀是一个非常典型的活动场景,比如,在双11、618等电商促销活动中,都会有秒杀场景。秒杀场景的业务特点是限时限量,业务系统要处理瞬时的大量高并发请求,而Redis就经常被用来支撑秒杀活动。不过,秒杀场景包含了多个环节,可以分成秒杀前、秒杀中和秒杀后三个阶段,每个阶段的请求处理需求并不相同,Redis并不能支撑秒杀场景的每一个环节。那么,Redis具体是在秒杀场景的哪个环节起到支撑作用的呢?又是如何支持的呢?清楚了这个问题,我们才能知道在秒杀场景中,如何使用Redis来支撑高并发压力,并且做好秒杀场原创 2021-11-22 14:38:22 · 627 阅读 · 0 评论 -
interrupted()和isInterrupted()还是一知半解?
前言当提及如何终止一个线程时,部分读者通常立马想到的方法肯定是stop(),但是stop()方法并不被推荐使用(很多规范中是禁止使用的),其原因是强制终止一个线程,会导致程序不正常的结束,会出现资源未正确释放、程序结果不正确等等问题。而是否终止一个线程应该把这个控制权转交给当前被终止的线程本身,此时采用的办法就是 ****interrupt()方法来终止,该方法相当于修改一个共享变量的值,当运行中的线程判断当前值为false则继续运行,如果有地方调用当前thread的interrupt()方法...原创 2021-11-21 21:06:29 · 337 阅读 · 0 评论 -
Redis篇:事务和lua脚本的使用
现在多数秒杀,抽奖,抢红包等大并发高流量的功能一般都是基于 redis 实现,然而在选择 redis 的时候,我们也要了解 redis 如何保证服务正确运行的原理前言redis 如何实现高性能和高并发 reids 事务的 ACID 原理 WATCH、EXEC 命令实现 redis 事务 lua 实现 redis事务 抢红包方案redis 如何实现高性能和高并发redis 是一个内存数据库,读写非常高效。除了开启 AOF,RDB 异步线程去持久化数据,基本没有磁盘I/O消耗,性...原创 2021-11-21 21:00:18 · 1095 阅读 · 2 评论