正文内容加载中...
posted @ 2019-12-23 17:55 Xjng 阅读 (10) 评论 (0) 编辑
摘要:多机数据库实现 十五 、复制 从服务器通过命令 slaveof 127.0.0.1 6000 成为主服务器的从服务器。然后执行复制操作,保持自己的状态和主服务器一样 1.理论 同步 成为从服务器后的同步操作: 1. 从服务器会发送SYNC命令给主服务器, 2. 主机会执行bgsave命令,并记录当前 阅读全文
posted @ 2019-12-23 17:54 Xjng 阅读 (7) 评论 (0) 编辑
摘要:单机数据库实现 九、数据库 1.服务器中的数据库 一个redis服务器保存多个数据库。 当执行 ,就是切换数据库到 ,具体就是会修改redisClient.db指针到redisServer.db[1] 2.数据库键空间 typedef struct redisDb{ dict dict;//数据库键 阅读全文
posted @ 2019-12-23 17:53 Xjng 阅读 (6) 评论 (0) 编辑
摘要:@(Redis) "豆瓣链接" 一、数据结构与对象 1.SDS SDS是Redis实现的一个字符串数据结构。 结构: 为什么不用c的字符数组 SDS记录字符串长度,所以获取字符串长度的操作是O1 SDS一次申请较长的内存,例如如果字符串长度是5,它会申请多于5的内存,而下次修改字符串,就不需要重新申 阅读全文
posted @ 2019-12-23 17:51 Xjng 阅读 (14) 评论 (0) 编辑
摘要:@(Mysql) "豆瓣链接" 官方数据库 "下载" 导入` /data/mysql57/bin/mysql socket /data/mysql3306/mysql.socket uroot ppassword1 show global status like 'innodb_dblwr%' ; 阅读全文
posted @ 2019-12-23 17:48 Xjng 阅读 (17) 评论 (0) 编辑
摘要:1. 日志 通过日志或者print来打印变量。必要时可以打印 和`globals()` 建议使用logging.debug()来代替print,这样到了正式环境,就可以统一删除这些日志。 2.trace Python有个trace模式,可以打印整个程序的执行流 例如这段简单的程序,执行 就会输出下面 阅读全文
posted @ 2019-11-03 15:33 Xjng 阅读 (126) 评论 (0) 编辑
摘要:排查流水账: execute_command函数(包含埋点日志,去除不必要的代码段),在rediscluster库的client.py @clusterdown_wrapper def execute_command(self, *args, **kwargs): """ Send a comman 阅读全文
posted @ 2019-10-30 19:17 Xjng 阅读 (61) 评论 (0) 编辑
摘要:支付流程 首先让我们理一下苹果支付的整个流程。 支付有三个角色 苹果 商家,也就是我们 用户 苹果支付的流程 1. 用户下单 2. 客户端调用后台接口,生成订单 2. 客户端调用支付页面,用户支付 3. 支付成功后,客户端获取收据 4. 客户端把收据发给后端 5. 后端去苹果验证收据是否合法 6. 阅读全文
posted @ 2019-10-19 12:12 Xjng 阅读 (156) 评论 (0) 编辑
摘要:1. 发现问题 1. 查询慢access日志,发现偶尔有接口时延超过2s,发送概率1%左右 2. 排查 1. 写单元测试,多次测试后,不能重现问题 2. 接口代码里加日志,每隔一行代码加一次日志,等待重现 3. 不断往上游接口加日志后,发现耗时在获取榜单top10的接口 4. top10接口是从数据 阅读全文
posted @ 2019-10-12 19:29 Xjng 阅读 (35) 评论 (0) 编辑
摘要:"豆瓣链接" 实验 1. nginx的tcp负载均衡 2. consul+consul template 3. consul实现配置中心 一个系统不是一下子就能设计完美的 在有限的资源下,优先解决最核心问题 一、原则 1. 高并发 1. 无状态 2. 拆分 3. 服务化 4. 消息队列(异步,) 5 阅读全文
posted @ 2019-10-05 12:46 Xjng 阅读 (86) 评论 (0) 编辑