07-Redis 穿透,击穿,雪崩,倾斜,淘汰,删除 1. 缓存穿透 概念 查不到,缓存层+持久层都压力增大 当用户去查询数据的时候,发现 redis 内存数据库中没有,于是向持久层数据库查询,发现也没有,于是查询失败,当用户过多时,缓存都没有查到,于是都去查持久层数据库,这会给持久层数据库造成很大的压力,此时相当于出现了缓存穿透。 解决方案 × 2 布隆过滤器(★):是一种数据结构,将所有可能存在的数据哈希到一个足够大的 bitmap 2017-06-20 05_数据库 > 03_Redis #Redis #穿透 #击穿 #雪崩 #倾斜 #淘汰
08-Redis SortedSet 排行榜 官网教程:https://www.redis.net.cn/tutorial/3505.html 菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html 场景: 实现汽车热度排行榜 现有 Api 消费者服务、CarServer 提供者服务、Cache Redis缓存服务 1. 基本逻辑数据预热: 第一次从 Api 进行访问请求 CarSe 2017-06-20 05_数据库 > 03_Redis #Redis #排行榜
08-MyBatis 逆向工程 【躲坑】: 注意数据库中字段名(列名)要与实体类中的字段名(属性名)完全一致 解决办法:在逆向工程生成 pojo 后,手动将 实体类的属性名+Mapper.xml的属性名 修改为完全一致,避免 N 多映射问题。 即:数据库字段名、实体类字段名、前端页面标签中的 name 属性值,三者必须完全一致。 原因: 数据库中使用小驼峰命名时,如 className,逆向工程生成 pojo 实体类属 2017-06-19 05_数据库 > 02_MyBatis #MyBatis
09-MyBatis JSON转换器 Mysql5.7 之后推出新增的数据类型:json (支持数组和对象) 但是 MyBatis 目前还不支持Json类型的转换,需要在 Mybatis 自定义类型转换器。 1. Mybatis JSON 转换器 依赖 12345678910111213141516171819<dependency> <groupId>com.google.code.gson&l 2017-06-19 05_数据库 > 02_MyBatis #JSON #MyBatis
01-安装&配置&卸载 CentOS系统下mysql安装1. 安装前准备1. 卸载MariaDB安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。 1.1 查看是否安装mariadb 1rpm -qa|grep mariadb 1.2 卸载 1rpm -e --nodeps 文件名 1.3 检查是否卸载干净 1rpm -qa|grep mariadb 1. 检查依赖2.1 查看是否安 2017-06-18 05_数据库 > 01_MySQL #安装 #配置 #MySQL
02-查询语法大全 MySQL执行过程 常规 SQL 语句语法 SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组 HAVING 过滤条件 ORDER BY 排序列 LIMIT 起始行,总条数; 执行顺序: 1234567FROM : 指定数据来源表WHERE : 对查询数据做第一次过滤GROUP BY : 分组HAVING : 对分组后的数据第二次过滤SELECT : 查询各字段的 2017-06-18 05_数据库 > 01_MySQL #语法 #MySQL
03-DML增删改 SQL语言分类: 数据`查询`语言 `DQL`(Data Query Language):select、where、order by、group by、having 数据`定义`语言 `DDL`(Data Definition Language):create、alter、drop 数据`操作`语言 `DML`(Data Manipulation Language):insert、up 2017-06-18 05_数据库 > 01_MySQL #MySQL #DML
04-库表创删改 1. 数据【库】操作1.1 数据值类型 sql支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 对于我们约束数据的类型有很大的帮助。 1.1.1 数值类型 类型 大小 范围(有符号) 范围(无符号) 用途 INT/INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 DOUBLE 2017-06-18 05_数据库 > 01_MySQL #MySQL #DDL
06-事务&原理&隔离级别 参考资料:MySQL事务的实现原理 事务的隔离级别 读未提交:一个事务可以看到其他事务未提交的修改。允许脏读 读已提交:一个事务能看到其他事务已经提交的修改。允许不可重复读和幻读 可重复读:保证同一个事务多次读取的数据是一致的。MySQL innoDB默认隔离级别,不会出现幻读 串行化:并发事务之间是串行化。读取需要获取共享锁,更新需要获取排它锁————最高隔离级别 脏读:一个事务读到了另一个 2017-06-18 05_数据库 > 01_MySQL #MySQL #事务
05-约束 1.1 实体完整性约束 表中的一列数据代表一个实体(entity),实体完整性的作用即是标识每一列数据不重复、实体唯一。 1.1.1 主键约束 关键字:PRIMARY KEY 唯一,标识表中的一列数据,此列的值不可重复,且不能为 NULL。 123456789# 为表中适用主键的列添加主键约束CREATE TABLE Student( stuId INT PRIMARY KEY, 2017-06-18 05_数据库 > 01_MySQL #MySQL #约束