数据库基础
数据库基础学习
wildec777
这个人很真的很懒
展开
-
Redis Zset跳表
参考《Java Guide》 Redis数据结构有序列表Zset的数据结构,类似Java里面的HashMap实现,set/value保证内部额唯一性,value赋予一个排序权重score实现排序的目标 为啥使用跳表 或者与红黑树二叉平衡树比较 性能:再看高并发情况下,树需要进行对于整个数据结构平衡的操作,跳表只需要进行局部 实现:跳表实现简单 通过下层链表与上层链表数量一半,可以实现类似二分查找,但是删除与添加会退化成O(N) 因此SkipList不要求严格的对应关系,而是为每个节点随机出一个层数(.原创 2020-08-20 15:04:03 · 332 阅读 · 0 评论 -
Redis基础 补充
Redis主从复制原理 来自《Redis设计与实现》 旧版本的实现原理: 同步(sync) 命令传播 无法高效处理断线以后的重复复制情况 新版本的实现: 使用PSYNC代替SYNC来执行复制时候的同步操作。 完整重同步:主服务器重建RDB文件,想从服务器发送保存在缓冲区内的写命令来实现同步 部分重同步:主服务器将主从断开时候写的命令发送给服务器,从而实现同步 部分重同步的实现原理: 主服务器的复制偏移量与从服务器的复制偏移量 维护复制偏移量,可以很轻易了解到当前 主从复制器的一致状态 主原创 2020-08-20 14:38:57 · 105 阅读 · 0 评论 -
Redis分布式锁 基础学习
Redis分布式锁 参考GitHub《Java Guide》 分布式锁的使用场景: 避免不同的节点的重复工作; 避免破坏数据的正确性 特点 与本地锁一样,需要保证互斥性 可重入性 锁超时 高效 阻塞与非阻塞 公平锁与非公平锁 Java中常见的分布式锁实现的方式:本质===》一段时间内只允许一个用户进行操作 MySQL里面中的悲观锁 基于Zookeeper的有序节点 基于Redis的单线程 可能碰到的问题: 锁超时: 场景:某个服务获取锁以后的宕机,锁无法被其他获取 设置锁的超时机制,保证服原创 2020-08-20 00:31:45 · 119 阅读 · 0 评论 -
Redis哨兵模式与高可用 基础学习
Redis哨兵模式与高可用 来自《Redis设计与实现》 Sentinel是Redis高可用的解决方案 哨兵是一个独立的进程,原理:哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个Redis实例。 由一个或者多个sentinel实例组成的sentinel系统可以监视任意多个服务器进程,以及这些主服务器属下的所有从服务器,并在被监视的主服务器下线以后,自动将现行的服务器属下的某个从服务器升级为新的猪服务器,然后由新的服务器代替已经下线的主服务器继续处理命令的请求。 Sentinel启动时,需原创 2020-08-19 15:05:59 · 102 阅读 · 0 评论 -
Redis基础知识
特点: 方便扩餐-数据之间没有关系 大数据量高性能8w/s 写11w/s读 数据多样性 不需要事先设计数据库 RDBMS与NoSQL 基础知识 16个数据库,默认使用的是第0个 五大数据类型String 、list、 set、 hash、zset 事务 Redis单条命令保存保证原子性,但是事务是不保证原子性 Redis没有事务隔离的概念:所有命令在发起执行的时候才会执行 Redis事务:开启事务(multi)》命令入队》执行事务(exec) 乐观锁wat原创 2020-08-17 22:35:40 · 78 阅读 · 0 评论 -
MySQL数据完整性
数据完整性是指数据的正确性与相容性,是为了防止数据库存在不正确的数据。定义了完整性约束以后,MySQL的服务器可以随时检测处于更新状态的数据库的内容是否符合完整性约束用于保证数据的一致性与正确性,从而防止数据的意外破坏以及提高相应的效率。 关系模型提供了实体完整性、参照完整性以及用户定义完整性3项规则。 1. 实体完整性 实体是一个数据对象,是指客观存在的并可以相互区分的事物。在数据库中,实...原创 2019-03-06 16:18:55 · 343 阅读 · 0 评论 -
MySQL索引
索引是一类特殊的数据结构,其目的是为了优化数据库的查询速度。用户创建的索引指向数据库中具体数据的所在位置。通过索引查询的数据不需要遍历数据库。 类似书的目录。 用空间换时间。 索引的类型:普通索引,唯一索引(主键)、全文索引(FULLTEXT参数,仅支持MyISAM)、单列索引、多列索引和空间索引。 全文索引为例子:在创建table时候建立索引 CREATETABLE cards( ...原创 2019-03-06 15:49:46 · 80 阅读 · 0 评论 -
MySQL的存储引擎
1.InnoDB InnoDB为MySQL提供了事务、回滚、崩溃修复能力与多版本并发控制的能力。 支持自动增长列AUTO_INCREMENT。MySQL中自增长列必须为主键。插入值时候,如果自动增长列不输入值,则插入的值为自动增长后的值。如果输入的值为0或NULL,则插入的值也为自动增长的值。如果插入了之间不存在的确定的值,则可以直接插入。 引擎支持外键(FOREIGN KEY) Inno...原创 2019-03-04 16:17:38 · 87 阅读 · 0 评论 -
SQL的一系列问题
最近在做SQLZOO熟悉SQL的语言规则与语法,里面有很多特别好用的技巧 1. 子查询参考外部查询的数值,并使用之 在每一個州中找出最大面積的國家,列出洲份 continent, 國家名字 name 及面積 area。 (有些國家的記錄中,AREA是NULL,沒有填入資料的。) SELECT continent, name, area FROM world x WHERE area &...原创 2019-02-26 20:17:40 · 363 阅读 · 0 评论 -
MySql初始化安装中出现的问题
1.首先使用Mysql官方链接下载安装以后,在系统中添加环境变量。如下图所示: path里面添加一项bin文件夹的地址,然后环境变量里面添加一项关于MYSQL_HOME地址是MySQL server的根文件目录。 2. 在路径的添加以后,使用管理员权限启动cmd运行mysql,首先运行 mysqld --install 安装服务 然后使用mysqld --initialize 初始化 ...原创 2019-02-20 19:38:21 · 680 阅读 · 0 评论