Redis 事务+持久化+订阅 官网教程:https://www.redis.net.cn/tutorial/3515.html 1. Redis 事务Redis 中的事务和 MySQL 中的事务有本质的区别,Redis中的事务是一个单独的隔离操作,事务中所有的命令都会序列化,按照顺序执行,事务在执行的过程中,不会被其他客户端发来的命令所打断,因为Redis服务端是个单线程的架构,不同的 Client 虽然看似可以同时保持连接 2017-06-20 05_数据库 > 04_Redis #事务 #Redis
Redis 数据存储类型 官网教程:https://www.redis.net.cn/tutorial/3505.html 菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html 1. Redis 数据类型Redis 常用 5 种存储数据的结构: String:一个 key 对应一个值 Hash:一个 key 对应一个 Map List:一个 key 对应一个列表 S 2017-06-20 05_数据库 > 04_Redis #命令 #Redis
Redis 主从复制+哨兵模式 官网教程:https://www.redis.net.cn/tutorial/3515.html 1. Redis 主从复制主从复制是指将一台 Redis 服务器的数据,复制到其它的 Redis 服务器。 前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台 Redis 服务器都是主节点,且一个主节点可以有多个从节点(或没有从 2017-06-20 05_数据库 > 04_Redis #Redis #哨兵
Redis 环境搭建 官网教程:https://www.redis.net.cn/tutorial/3501.html 菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html 1. Redis 简介关系型数据库 与 noSQL 数据库(键值对存储) 从性能上而言,nosql数据库要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实际开发中一 2017-06-20 05_数据库 > 04_Redis #配置 #Redis
Redis 穿透,击穿,雪崩,倾斜,淘汰,删除 1. 缓存穿透 概念 查不到,缓存层+持久层都压力增大 当用户去查询数据的时候,发现 redis 内存数据库中没有,于是向持久层数据库查询,发现也没有,于是查询失败,当用户过多时,缓存都没有查到,于是都去查持久层数据库,这会给持久层数据库造成很大的压力,此时相当于出现了缓存穿透。 解决方案 × 2 布隆过滤器(★):是一种数据结构,将所有可能存在的数据哈希到一个足够大的 bitmap 2017-06-20 05_数据库 > 04_Redis #Redis #穿透 #击穿 #雪崩 #倾斜 #淘汰
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
MyBatis 逆向工程 【避坑】: 注意数据库中字段名(列名)要与实体类中的字段名(属性名)完全一致 解决办法:在逆向工程生成 pojo 后,手动将 实体类的属性名+Mapper.xml的属性名 修改为完全一致,避免 N 多映射问题。 即:数据库字段名、实体类字段名、前端页面标签中的 name 属性值,三者必须完全一致。 原因: 数据库中使用小驼峰命名时,如 className,逆向工程生成 pojo 实体类属 2017-06-19 05_数据库 > 02_MyBatis #MyBatis
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
事务&原理&隔离级别 参考资料:MySQL事务的实现原理 事务的隔离级别 读未提交:一个事务可以看到其他事务未提交的修改。允许脏读 读已提交:一个事务能看到其他事务已经提交的修改。允许不可重复读和幻读 可重复读:保证同一个事务多次读取的数据是一致的。MySQL innoDB默认隔离级别,不会出现幻读 串行化:并发事务之间是串行化。读取需要获取共享锁,更新需要获取排它锁————最高隔离级别 脏读:一个事务读到了另一个 2017-06-18 05_数据库 > 01_MySQL #MySQL #事务
复杂查询合集 1. 行转列,列转行123456789101112131415161718192021222324DROP TABLE IF EXISTS cangku;CREATE TABLE `cangku` ( `PID` VARCHAR(10), `PNUM` VARCHAR(10) NOT NULL, `SID` VARCHAR(10) NOT NULL)INSERT INTO `cangku` 2017-06-18 05_数据库 > 01_MySQL #MySQL