
数据库
文章平均质量分 76
绕远的偶人
300字以内
展开
-
Redis Sentinel和Raft协议
Sentinel(哨兵)为redis提供高可用性(HA),官方文档https://redis.io/topics/sentinel 用于监视主从服务器,主节点下线时进行选主。本质上是一个运行在特殊模式下的redis服务器,只是端口、命令集等有所不同,维护主从服务器、其他sentinel的状态,一般通过配置文件(主节点IP,下线时间阈值等)来初始化。 哨兵和master一般是多对多的,多个哨兵监视多个master。哨兵连接主从服务器时,除了命令连接,还会创建订阅连接,订...原创 2020-08-23 19:54:31 · 1225 阅读 · 0 评论 -
《Redis设计与实现》读书笔记——发布与订阅、事务、排序、二进制位数组
1、发布与订阅 发布与订阅功能有PUBLISH、SUBSCRIBE、PSUBSCRIBE(正则订阅,订阅某个模式)等命令组成。例如SUBSCRIBE "news.it"、PUBLISH "news.it" "hello"、PSUBSCRIBE "news.[ie]t"等。struct redisServer{ // 保存所有频道的订阅关系,Map<channel,List&l...原创 2018-05-05 14:29:21 · 337 阅读 · 0 评论 -
《Redis设计与实现》读书笔记——复制、Sentinel、集群
1、复制 用SLAVEOF命令让一个服务器(从)去复制另一个服务器(主)。例如127.0.0.1:12345> SLAVEOF 127.0.0.1 6379,127.0.0.1:12345将成为127.0.0.1:6379的从服务器。 (1)旧版复制功能实现,分为同步和命令传播两个操作。当执行SLAVEOF时,首先执行同步操作,【1】从服务器向主服务器发送SYNC命令【2】主服务...原创 2018-05-04 22:29:03 · 379 阅读 · 0 评论 -
《Redis设计与实现》读书笔记——数据库、持久化、事件、客户端、服务器
1、数据库struct redisServer{ // 一个数组,保存服务器中所有数据库 redisDb *db; // 服务器的数据库数量,默认16 int dbnum; };typedef struct redisClient{ /** 记录客户端正在使用的数据库 * 指向redisServer.db数组的...原创 2018-05-04 19:01:31 · 172 阅读 · 0 评论 -
《Redis设计与实现》读书笔记——数据结构与对象
1、数据结构 (1)简单动态字符串(SDS)struct sdshrd{ // 记录buff数组中已使用字节的数量 int len; // 记录未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[];} 与C字符串相比,可以O(1)获取长度、杜绝缓冲区溢出、减少修改字符串时的内存重分...原创 2018-05-03 20:37:26 · 182 阅读 · 0 评论 -
《数据库系统概念》读书笔记——概念、SQL、JDBC、ER、范式等
1、关系型数据库 列:字段/属性 行:元组/记录 关系:笛卡尔积中符合某种关系的元组(笛卡尔积是从两个关系中合并元组) 超码是可以唯一标识元组的属性组合,候选码是最小的超码,主码是被选中的候选码 2、SQL 有char(n),varchar(n),int,smallint,numeric(p, d),float(n),date,time,tim...原创 2018-04-21 17:35:34 · 1411 阅读 · 0 评论 -
MySQL索引——分类、何时使用、何时不使用、何时失效
1、分类 MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引。索引不会包含有null值的列,索引项可以为null(唯一索引、组合索引等),但是只要列中有null值就不会被包含在索引中。 (1)普通索引:create index index_name on table(column); 或者创建表时指定,create table(..., index i...原创 2018-04-22 21:39:30 · 23497 阅读 · 3 评论 -
《高性能MySQL》读书笔记—数据类型、MVCC、InnoDB、索引等
MySQL默认的隔离级别是repeatable read。InnoDB解决死锁:将持有最少行级排他锁的事务回滚。1、数据类型 (1)tinyint(8),smallint(16),mediumint(24),int(32),bigint(64) (2)float(32),double(64),decimal(最多65个数字,不会丢失精度,cpu不支持decimal计算,是MySQL实现...原创 2018-04-22 16:54:27 · 476 阅读 · 0 评论 -
《数据库系统概念》读书笔记——事务、并发控制(隔离级别的实现)、乐观锁和悲观锁
1、事务 (1)ACID:原子性,一致性(事务执行前后满足约束条件,例如转账前后总钱数不变),隔离性,持久性 几种不一致现象:丢失修改(read uncommitted即可避免,因为加了写锁)、脏读、不可重复读、幻读 【1】脏读:事务处理过程中读取了另一个未提交事务的数据 【2】不可重复读:一个事务范围内多次查询返回不同的数据。是由于查询间隔内,另一个事务修改并提交了数据 ...原创 2018-04-22 15:23:47 · 429 阅读 · 0 评论 -
《数据库系统概念》读书笔记——散列和索引
索引是index_field(s) + pointer,提高查询效率,缺点是维护索引有额外开销,需要建立合适的索引。 总体上可以分为顺序索引、散列索引和位图索引。1、顺序索引,常用B+树实现 (1)聚集索引和非聚集索引:聚集索引(主索引)只有一个,主文件按某个搜索码排序,该搜索码对应的索引是聚集索引,搜索码不一定是主键(即聚集索引的物理顺序与索引顺序相同)。 建表时的主键...原创 2018-04-22 14:20:16 · 1418 阅读 · 0 评论