摘要: redis数据库 musql 关系型数据库 非关系型数据库redis mongodb nosql不仅仅是 redis-cli ping pong NoSQL 学名(not only sql)特点:存储结构与mysql这一种关系型数据库完全不同,nosql存储的是KV形式nosql有很多产品,都有自己 阅读全文
posted @ 2019-11-26 16:58 百鬼之主 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 什么样的数据适合缓存? 分析一个数据是否适合缓存,我们要从访问频率、读写比例、数据一致性等要求去分析. 数据访问频率越高 数据读写比例:读多写少, 数据一致性要求较低 缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到 阅读全文
posted @ 2019-11-26 16:47 百鬼之主 阅读(157) 评论(0) 推荐(0) 编辑
摘要: redis的单线程模型 redis使用文本事件处理器file event handler ,整个文件事件处理器是单线程的, 所以才叫做单线程模型,他采用IO多路复用机制同时监听多个socket,根据socket上的事件来选择对应的事件处理器进行处理 文件事件处理器的结构包含4个部分 多个socket 阅读全文
posted @ 2019-11-26 11:35 百鬼之主 阅读(193) 评论(0) 推荐(0) 编辑
摘要: redis分布式映射算法 一致性Hash算法的原理和实现 为了解决分布式系统中的负载均衡的问题 背景问题 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均发到每台服务器上,每台服务器负载1/N的服务 硬Hash映射: 将每台服务器结点进行编号,0到N-1,Key%N就是映射到的服务器结 阅读全文
posted @ 2019-11-26 11:33 百鬼之主 阅读(222) 评论(0) 推荐(0) 编辑
摘要: [SELECT *] 和[SELECT 全部字段]的 2 种写法有何优缺点? 1. 前者要解析数据字典,后者不需要 2. 结果输出顺序,前者与建表列顺序相同,后者按指定字段顺序。 3. 表字段改名,前者不需要修改,后者需要改 4. 后者可以建立索引进行优化,前者无法优化 5. 后者的可读性比前者要高 阅读全文
posted @ 2019-11-26 11:18 百鬼之主 阅读(277) 评论(0) 推荐(0) 编辑
摘要: MySQL中的聚集索引和辅助索引 当你定义一个主键时,innodb存储引擎就把他当做聚集索引 如果你没有定义一个主键,则innodb定位到第一个唯一索引,且改索引的所有列值均为非空,就将其当做聚集索引. 如果表没有主键或者合适的唯一索引,innodb会产生一个隐藏的行ID值6字节的ID聚集索引 补充 阅读全文
posted @ 2019-11-26 11:14 百鬼之主 阅读(3252) 评论(0) 推荐(1) 编辑
摘要: 关于mysql的自增测试,innodb和myisam下的不同表现 innodb引擎下的自增id测试 1 innodb引擎下,如果显示insert了最大值,那么下次的AUTO_INCREMENT值就是这个最大值+1 2 如果这时候再把其中一个id值update成10,那么下次的AUTO_INCREME 阅读全文
posted @ 2019-11-25 22:35 百鬼之主 阅读(915) 评论(0) 推荐(0) 编辑
摘要: MySQL的四种事务隔离级别 一:事务的基本要素 原子性(Atomic):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样. 一致性(consistent):事务开始前和结束后,数据库的完整性约束没有被破坏 阅读全文
posted @ 2019-11-25 21:40 百鬼之主 阅读(391) 评论(0) 推荐(0) 编辑
摘要: MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长,在一定范围内,增加用户的并发连接,对提高系统的吞吐量有一定的帮助,然而用户并发连接数超过某个阈值, 阅读全文
posted @ 2019-11-25 21:19 百鬼之主 阅读(3172) 评论(0) 推荐(0) 编辑
摘要: from pydub import AudioSegment file_name = "张杰 - 这就是爱.mp3" sound = AudioSegment.from_mp3(file_name) start_time = "1:22" #截取开始位置 stop_time = "1:57" #截取的末尾位置 start_time = (int(start_time.split(':')[0])* 阅读全文
posted @ 2019-09-20 16:22 百鬼之主 阅读(273) 评论(0) 推荐(0) 编辑