• Redis基础篇

    一、从常用数据结构说起上文说到Redis提供了丰富的数据结构,包括STRING(字符串)、LIST(列表)、SET(集合)、HASH(散列)和ZSET(有序集合)基本数据类型。先来一波操作感受一下:基本的数据类型的大概使用就到这里,接下来就分析一下它的内部结构是怎么实现的。二、底层实现Redis是KV类型的数据库,Key-Value我们一般会用什么数据结构存储?哈希表!没错Re...

    Redis 2021年03月12日 1575 0
  • Linux运维指南Nacos、Rabbit MQ、Redis

    Linux运维指南含Nacos、Rabbit MQ、Redis一、Rabbit MQ安装指南1.1安裝Erlang语言因为Rabbit MQ是基于Erlang语言开发的,运行环境必须依赖于Erlang,无论是Windows机器还是Linux机器,安装Rabbit MQ之前第一步要安装Erlang.1.1.1安装Erlang所需依赖进入Linux服务器,创建/u01目录:mkdi...

    Redis 2021年03月10日 2458 0
  • explain查看执行计划

    在MySQL性能调优的时候explain是必须要使用的关键字,它的作用是可以查看sql语句的执行信息,包括表的读取顺序,应用到的索引等信息。用法:explain + sql语句。本篇我们先熟悉explain的内容,为下篇学习索引奠定基础。explain内容查看user全表查询的执行计划:mysql> explain select * from user; idid表示se...

    MySQL 2021年03月10日 1281 0
  • Redis是如何持久化到硬盘的

    Redis为什么需要持久化我们在项目中或多或少会用到Redis,Redis主要用作缓存数据库。使用Redis可以大大提升我们程序是性能,使用Redis之所以快的原因之一是Redis的数据是存储在内存中,应用程序访问Redis只需要从内存中读取即可。从内存中读取数据确实能提高访问速度,但是当Redis挂了,内存中的数据就会丢失掉,为了防止数据丢失,我们需要将数据持久化到硬盘中。当...

    Redis 2021年03月09日 1746 0
  • 线上MySQL读写分离,出现写完读不到问题如何解决?

    今天我们来详细了解一下主从同步延迟时读写分离发生写后读不到的问题,依次讲解问题出现的原因,解决策略以及 Sharding-jdbc、MyCat 和 MaxScale 等开源数据库中间件具体的实现方案。一、写后读不到问题MySQL 经典的一主两从三节点架构是大多数创业公司初期使用的主流数据存储方案之一,主节点处理写操作,两个从节点处理读操作,分摊了主库的压力。但是,有时候可能会遇...

    MySQL 2021年03月09日 1215 0
  • SQLServer数据库实例相关知识笔记

    1、概念介绍SQL实例实际上就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。在一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个数据库实例。2、SQL实例分类SQL实例分为默认实例和命名实例。这个在SQLServer软件安装时候可以选择哪种命名方式,但一台计算机中只能有一个实例作为默...

    SQL SERVER 2021年03月08日 1434 0
  • Redis如何实现分布式锁?

    前言如果在一个分布式系统中,我们从数据库中读取一个数据,然后修改保存,这种情况很容易遇到并发问题。因为读取和更新保存不是一个原子操作,在并发时就会导致数据的不正确。这种场景其实并不少见,比如电商秒杀活动,库存数量的更新就会遇到。如果是单机应用,直接使用本地锁就可以避免。如果是分布式应用,本地锁派不上用场,这时就需要引入分布式锁来解决。由此可见分布式锁的目的其实很简单,就是为了保...

    Redis 2021年03月08日 1486 0
  • 「MySQL笔记」left join-on-and 与 left join-on-where 的区别

    1. 摘要关于这两种写法的重要知识点摘要如下:left-join 时,即使有相同的查询条件,二者的查询结果集也不同,原因是优先级导致的,on 的优先级比 where 高on-and 是进行韦恩运算连接生成临时表时使用的条件where 是全部连接完生成临时表后,再根据条件过滤on 优先级比 where 高,因此,理论上 on-and 写法执行效率比 on-where 高,速度更快...

    MySQL 2021年03月08日 1287 0
  • Oracle与Mysql区别

    1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。 2. Oracle支持大并发,大访问量,是OLTP最好的工具。 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。...

    MySQL 2021年03月08日 1351 0
  • 为什么delete表数据,磁盘空间却还是被占用

    最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录。明明已经执行了delete,可表文件的大小却没减小,令人费解项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据。表结构占用空间都是比较小的,一般都是表数据占用的空间。当我们使用 delete删除数据时,...

    MySQL 2021年03月06日 1328 0
  • MySQL:按照ID分组日期时间求和,过滤重叠时间

    原始数据SELECT d.waybill_no, @group_row:=CASE WHEN @parent_code=picked_by THEN @group_row+1 ELSE 1 END AS id, @parent_code1:=picked_by AS picked_by1, MIN(spd.picked_date) start_time, MAX(spd.pic...

    MySQL 2021年03月05日 1434 0
  • 海量数据写入——万级并发的订单系统如何分库?

    一定要分表分库吗?当然不一定。虽然很多互联网公司的体量很大、用户非常多,但你千万不要被这些现象迷惑了。实际上,90% 以上的系统能够发展到上百万、上千万数据量已经很不错了。对于千万的数据量,开源的 MySQL 都可以很好地应对,更别说一些商业数据库了。另外,当数据增长到一定量级后,可以在业务层面做一些处理。比如根据业务特点,对无效数据、软删除数据,以及业务上不会再查询的数据进行...

    MySQL 2021年03月04日 1324 0
  • mysql-DCL语句与帮助的使用

    DCL语句DCL语句主要是DBA用来管理系统中的对象权限时使用,一般的开发人员很少使用。下面通过一个例子简单说明一下。创建一个数据库用户z1,具有对sakila数据库中所有表的SELECT/INSERT 权限,并且密码为123。grant select,insert on sakila.* to ‘z1’@’localhost‘indentified by ‘123’;收回z1...

    MySQL 2021年03月03日 1184 0
  • 如何破解缓存穿透和并发?

    缓存是我们现在经常使用的技术之一,对于缓存的使用,看似非常简单,其实却蕴含着很多技巧在里面,这些技巧可以帮助我们最大化地发挥缓存的功效,减少因为缓存的使用导致的线上生产事故,那么这些技巧都有哪些,如何使用呢?下面试着从缓存穿透,缓存并发来开展破解之道。缓存穿透流程和危害  在通常情况下,我们在前台是如何使用缓存的呢?我们来看下面这个流程:  当系统接收到一个请求时,请求先从缓存...

    Redis 2021年02月28日 1529 0
  • MySQL 8.0.19亿级数据如何秒速增加字段?

    概述今天主要介绍一下MySQL 8.0.19 instant add column的新特性,基于亿级数据秒速增加字段,下面一起来看看吧~一、MySQL DDL 的方法MySQL 在大型表上的 DDL 会带来耗时较久、负载较高、额外空间占用、MDL、主从同步延时等情况。需要特别引起重视,而MySQL 的 DDL 有很多种方法。MySQL 本身自带三种方法,分别是:copy、inp...

    MySQL 2021年02月27日 2214 0
  • 跨越异构鸿沟,Redis 迁移同步过程中的挑战与解决方案

    随着云计算十余年的高速发展,作为目前可见的最新阶段,多云正在快步大踏步前进。而多云趋势所带来得数据云间迁移,也逐步常态化。因此, 缓存 Redis 已成为高并发场景下提升数据访问速度的标配。不仅是数据云间迁移,目前大型系统对于缓存强依赖,致使大多数企业都会面临大量并发读写数据时访问速度慢、数据库压力大,以及缓存数据不⾜带来的缓存击穿及雪崩⻛险。其中, Redis 就起到了降低数...

    Redis 2021年02月26日 1480 0
  • MySQL innodb意向锁介绍

    大家知道,InnoDB 实现了标准的行级锁,包括:共享锁(S锁)、排它锁(X锁)。那么为什么需要引入意向锁呢?它能解决什么问题呢?假设,事务A获取了某一行的排它锁,尚未提交,此时事务B想要获取表锁时,必须要确认表的每一行都不存在排他锁,很明显效率会很低,引入意向锁之后,效率就会大为改善:如果事务A获取了某一行的排它锁,实际此表存在两种锁,表中某一行的排他锁和表上的意向排他锁。如...

    MySQL 2021年02月23日 6095 0
  • mysql一张表到底能存多少数据?

    前言程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨知识准备数据页在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网...

    MySQL 2021年02月20日 1304 0
  • autojs之数据库

    使用情景: 数据库DDL(Data Definition Language)数据定义语言数据库和表的操作都属于ddl, 比如: Create、Drop和Alter,DDL所站的高度, 最低也比记录高一层创建或打开数据库const TableName = "IMGDATA"; // 表名: IMGDATA // 字段1 id 整数 主键 自增 // 字段2 name 字符串 不可...

    SQLite 2021年02月06日 2687 0
  • Redis集群实战篇

    1. 拉取redis镜像docker pull redis:6.0.92. 配置文件2.1 生成目录用来存放redis的配置文件与持久化文件,日志文件等# 新增目录 mkdir -p /www/redis/redis_001/ && mkdir -p /www/redis/redis_001/data/ # 切换目录 cd /www/redis/redis_0...

    Redis 2021年02月05日 1647 0
  • Insert into select语句竟然也会引发的生产事故?

    前言  Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O...

    MySQL 2021年02月02日 1219 0
  • redis的五种数据结构和应用场景:微博微信点赞+加购物车等

    Redis五种数据结构如下:1.String 字符串类型是redis中最基本的数据类型,一个key对应一个value。String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。2.Hash (哈希)是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},........

    Redis 2021年02月02日 1924 0
  • MySQL如何加锁控制并发

    目录前言一、乐观锁添加version字段二、悲观锁读锁全表锁(LOCK TABLE 表 READ)行锁(SELECT ... LOCK IN SHARE MODE)写锁全表锁(LOCK TABLE 表 WRITE)行锁(SELECT ... FOR UPDATE)前言锁总体可以分为乐观锁和悲观锁,简单说,乐观锁用版本号控制,悲观锁用锁控制。下面是待会要用来测试的数据# 添加一个...

    MySQL 2021年01月31日 1119 0
  • Redis 之哈希

    命令hset key field value 设置值,成功返回1,失败返回0,hash提供了 hsetnx 命令 只有key不存在才会设置成功hget key value 获取值hdel key field [field ...] 删除filed,返回删除成功的个数hlen key 统计field个数hmget key field [field ...] 批量获取field v...

    Redis 2021年01月30日 1381 0
  • Redisson 3.15.0 新特性spinLock和其它

    Redisson 3.15.0发布了,带来了Apache Tomcat 10的支持,以及spin lock先看spinLock目前支持四种编程模式,一种原生,一种Async 异步,一种Reactive, 一种RxJava 2看原生的RLock lock = redisson.getSpinLock("myLock"); // traditional lock method l...

    Redis 2021年01月30日 3232 0
  • MYSQL8.023新特性,消失的列

    我们来体验一下MySQL 8.0.23新特性:不可见列(invisible 关键字)。传统版本数据库中所有列都是可以查询的,现在可以指定一个不可见的列,它将对查询隐藏。如果显式引用,它可以被查到。1、首先建表create table test_invisible ( id int, name varchar(20), money float in...

    MySQL 2021年01月30日 1481 0
  • 可以了,基于Redis和Lua实现分布式令牌桶限流

    限流是一个很大的话题,准备把其中的所有限流器都实现一遍,以此也算全都写过了,到时候再用也不至于会心虚,毕竟真实写完成过。本文主要讲述了如何基于 Redis 与 Lua实现分布式令牌桶的限流方案。读前提问我觉得学习任何东西前都应该有自己的反问,这种反问基于标题给你的大概印象。带着问题来看文章,最后应该比盲目的看有收获,先提出几个基础的问题。限流是什么通过某种手段对某个时间段的并发...

    Redis 2021年01月30日 1246 0
  • 原来大厂的Redis分布式锁都这么设计的

    1 本地锁常用的即 synchronize 或 Lock 等 JDK 自带的锁,只能锁住当前进程,仅适用于单体架构服务。 而在分布式多服务实例场景下必须使用分布式锁2 分布式锁2.1 分布式锁的原理厕所占坑理论可同时去一个地方“占坑”:占到,就执行逻辑否则等待,直到释放锁可通过自旋方式自旋“占坑”可以去Redis、DB、任何所有服务都能访问的地方。2.2 分布式锁演进一阶段//...

    Redis 2021年01月29日 1479 0
  • Flink + Iceberg 全场景实时数仓的建设实践

    摘要: Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持...

    MySQL 2021年01月29日 1514 0
  • Flink + Iceberg 全场景实时数仓的建设实践

    摘要: Apache Flink 是目前大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构,以 Iceberg、Hudi、Delta 为代表的解决方案应运而生,Iceberg 目前支持 Flink 通过 DataStream API /Table API 将数据写入 Iceberg 的表,并提供对 Apache Flink 1.11.x 的集成支持...

    MySQL 2021年01月29日 1246 0