08 2021 档案

摘要:复制从节点过期键清理 在周期时间事件serverCron-->databasesCron函数中有如下代码: /* This function handles 'background' operations we are required to do * incrementally in Redis 阅读全文
posted @ 2021-08-12 09:48 TeyGao 阅读(204) 评论(0) 推荐(0) 编辑
摘要:哈希冲突问题 Redis使用哈希表来存放键值对数据,在插入新键值对数据时,会先按照”key“来计算哈希值,再根据哈希值和哈希表的sizemask来计算出该”key“在对于哈希数组中的索引值,然后将键值对数据封装成dictEntry对象并放入到索引值对应的哈希数组中。 不同的Key经过相同哈希函数计算 阅读全文
posted @ 2021-08-11 02:21 TeyGao 阅读(964) 评论(0) 推荐(0) 编辑
摘要:Redis过期键删除 在Redis中使用server.dbnum来控制Redis实例包含的DB数量,每个RedisDB结构如下: /* Redis database representation. There are multiple databases identified * by intege 阅读全文
posted @ 2021-08-10 13:17 TeyGao 阅读(167) 评论(0) 推荐(0) 编辑
摘要:慢日志相关代码 在Redis中,使用list来在内存中保存当前实例的慢日志,并使用slowlog_entry_id来记录下一条慢日志的编号,每次新插入慢日志时会slowlog_entry_id值进行加一操作。 struct redisServer { list *slowlog; /* SLOWLO 阅读全文
posted @ 2021-08-09 23:50 TeyGao 阅读(125) 评论(0) 推荐(0) 编辑
摘要:MySQL事务协调器 MySQL支持多种存储引擎,并在MySQL Server层实现Binlog机制来进行主从数据同步。每种存储引擎相互独立,使用不同的数据文件和日志文件,当MySQL实例内部一个事务涉及到多个事务存储引擎表时,需要使用2PC来保证数据一致性。 ## 文件sql\mysqld.cc 阅读全文
posted @ 2021-08-07 13:15 TeyGao 阅读(560) 评论(0) 推荐(0) 编辑
摘要:innodb_flush_log_at_trx_commit参数 参数innodb_flush_log_at_trx_commit的取值有: 0:logs are written and flushed to disk once per second. 1:Logs are written and 阅读全文
posted @ 2021-08-05 09:12 TeyGao 阅读(732) 评论(0) 推荐(0) 编辑
摘要:MGR同步原理 Group Replication是通过MySQL的插件方式实现的,为不影响MySQL原有事务的处理过程,通过在流程中选择性地加入Group Replication的特殊处理方法,降低对原有代码的影响,并通过回调函数的机制来实现对Group Replication的支持。 在DML操 阅读全文
posted @ 2021-08-04 11:43 TeyGao 阅读(556) 评论(0) 推荐(0) 编辑
摘要:性能测试 同一门课程,会拆分为多个小班进行授课,每个小班会对于一个评分,课程负责人需要获取所有小班的评分并进行排名。 假设100个课程,每个课程有100个小班,模拟100个并发请求课程所有小班评分数据,每个并发循环30000次。 使用阿里云Redis进行压测,实例规格为2G集群版(2节点) 方案1: 阅读全文
posted @ 2021-08-03 11:05 TeyGao 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:学习总结 在redis中使用到缓冲区的功能主要有: 客户端缓冲区 复制积压缓冲区 AOF缓冲区 其中客户端缓冲区指客户端通过TCP连接到redis的输入缓冲区和输出缓存区。 参数client-query-buffer-limit用来控制客户端传递给redis的数据大小,默认为1G,在使用Redis时 阅读全文
posted @ 2021-08-01 12:11 TeyGao 阅读(223) 评论(0) 推荐(0) 编辑