03 2021 档案

摘要:我们知道redis支持很多种结构的数据,那么如何使用redis作为异步队列使用呢? 使用list结构,rpush生产消息,lpop消费消息。 lpop没有消息的时候,可适当sleep后重试。 若不使用sleep方案,可使用blpop消费消息,它会阻塞直至消息到来。 pub/sub的主题订阅者模式的优 阅读全文
posted @ 2021-03-31 23:13 smallzhen 阅读(1201) 评论(0) 推荐(0) 编辑
摘要:在使用redis的时候,总是被告知keys命令慎用,到底是什么原因要慎用keys呢? 由于redis是单线程的,当redis正在给线上的业务提供服务时,使用keys命令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕才能恢复服务。 参考https://mp.weixin.qq.com/s/H 阅读全文
posted @ 2021-03-30 22:04 smallzhen 阅读(268) 评论(0) 推荐(0) 编辑
摘要:redis支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。 redis不仅支持key-value类型,还提供list、set、zset、hash等数据结构。memcache只支持key-value类型 redis支持数据备份,即主从多副本模式 redis的数据比memca 阅读全文
posted @ 2021-03-29 22:51 smallzhen 阅读(56) 评论(0) 推荐(0) 编辑
摘要:sql与nosql数据库的选择,考虑以下几个指标: 数据量 并发量 实时性 一致性要求 读写分离 安全性 运维性 根据这些个指标,软件系统可分为 管理型系统:运营类系统,sql 大流量系统:字段多、数据量增长块,nosql 日志型系统:es 搜索型系统:es 事务型系统:sql+缓存redis 离线 阅读全文
posted @ 2021-03-28 21:38 smallzhen 阅读(136) 评论(0) 推荐(0) 编辑
摘要:MongoDB: MongoDB是非关系型数据库(NoSql),属于文档型数据库,最大的特点是no-schema,可以存储和读取任意的数据,存储的格式是json。以json格式存进MongoDB后,即使读取一个json中不存在的字段也不会出现SQL般的语法错误。 优点: 新增字段不出错,易拓展 查询 阅读全文
posted @ 2021-03-26 23:29 smallzhen 阅读(216) 评论(0) 推荐(0) 编辑
摘要:什么是NoSql? NoSQL(Not Only SQL), “不仅仅是SQL”,非关系型数据库,文档型数据库。 有哪些NoSql数据库? Redis、MongoDB、HBase、全文搜索引擎Elasticsearch NoSql的分类和特点? 文档存储型:存储的数据格式为json格式。 K-V存储 阅读全文
posted @ 2021-03-26 23:16 smallzhen 阅读(134) 评论(0) 推荐(0) 编辑
摘要:不推荐使用子查询和join的原因总结: 子查询和join的效率是硬伤,一旦数据量大效率很难保证。 执行子查询时,mysql需要创建临时表,查询完毕再删除这些临时表,所以子查询的速度会收到一定影响。 join查询走嵌套查询,小表驱动大表。 join查询,DB承担的业务压力大,当表百万级别时,join导 阅读全文
posted @ 2021-03-25 23:02 smallzhen 阅读(162) 评论(0) 推荐(0) 编辑
摘要:一直对InnoDB的行格式不太了解,于是找了几篇文章看了一下,总结一下 什么是行格式? 我们平时以记录为单位向表中插入数据,这些记录在磁盘上的存放方式被称为「行格式」或「记录格式」。 行格式的应用是针对于表的,只有创建表的时候使用行格式,在创建库或插入数据的时候无法选择行格式。 表的行格式决定了这张 阅读全文
posted @ 2021-03-24 22:57 smallzhen 阅读(69) 评论(0) 推荐(0) 编辑
摘要:decimal(a,b) 表示 a 指定小数点左边和右边可以存储的十进制的最大个数,最大精度38 b 指定小数点右边可以存储的十进制的最大个数,0<=b<=a 假设 decimal(4,2),数字 89.03是符合规格的。 decimal每4个字节存9个数字,小数点占1个字节,所以decimal(1 阅读全文
posted @ 2021-03-22 21:19 smallzhen 阅读(1531) 评论(0) 推荐(0) 编辑
摘要:什么是前缀索引? 前缀索引也叫局部索引。 优点:它能有效减小索引文件的大小,让每个索引页可以保存更多索引值,从而提高索引查询的速度。 缺点:不能在order by 和 group by 中触发前缀索引,也不能用于覆盖索引。 前缀索引的使用原则: 降低重复的索引值。 前缀索引的使用 alter tab 阅读全文
posted @ 2021-03-21 19:02 smallzhen 阅读(916) 评论(0) 推荐(0) 编辑
摘要:utf8mb4是utf8的超集并完全兼容utf8,能够用4个字节存储更多的字符。 utf8mb4对应的排序字符集常用的有: utf8mb4_unicode_ci utf8mb4_general_ci 从准确性和性能比较两者 准确性: utf8mb4_unicode_ci是基于标准的Unicode来排 阅读全文
posted @ 2021-03-20 23:40 smallzhen 阅读(437) 评论(0) 推荐(0) 编辑
摘要:浮点类型包括float和double两种类型,double类型的精度比float类型高。 float类型:单精度,数据可以存储至多8位十进制数并占4个字节。 double类型:双精度,数据可以存储至多18位十进制数并占8位字节。 参考:https://mp.weixin.qq.com/s/V6mQe 阅读全文
posted @ 2021-03-20 23:27 smallzhen 阅读(367) 评论(0) 推荐(0) 编辑
摘要:Unix系统有5种IO模型,这些IO模型的目的是为了提高服务器能够并行处理的连接数,而不是提高程序的执行性能。 阻塞IO:应用程序调用一个IO函数导致阻塞,在数据准备好前一直阻塞。 非阻塞IO:当所请求的I/O操作无法完成时,进程不休眠,轮询代替阻塞,在内核数据准备期间可以执行其他事情,但是不停轮询 阅读全文
posted @ 2021-03-19 23:52 smallzhen 阅读(41) 评论(0) 推荐(0) 编辑
摘要:看到一篇总结的很好的一篇博文,于是做个小结 redis大多数时候是单线程运行的(同一个时间只占用一个CPU,只有一个指令在运行,即不可能并行读写),但是redis性能还是很好,原因如下: redis使用了 多路I/O复用机制(详看我的另一篇博客多路复用机制),处理客户端请求时,不会阻塞主线程。red 阅读全文
posted @ 2021-03-18 00:18 smallzhen 阅读(255) 评论(0) 推荐(0) 编辑
摘要:了解一下,爬虫可以分为以下四种类型: 聚焦网络爬虫(主题网络爬虫): 会针对某种特定的内容去爬取信息,且会保证信息和需求尽可能相关。 通用爬虫(全网爬虫):广度优先策略或深度优先策略 获取url,根据url爬页面后获取新url,在根据新url获取新新url,满足条件时停止爬取。 增量抓取:通过爬虫程 阅读全文
posted @ 2021-03-17 23:32 smallzhen 阅读(1269) 评论(0) 推荐(0) 编辑
摘要:InnoDB的事务日志包括redo log和undo log。 redo log redo log是重做日志,用来保障已提交事务的ACID特性。 redo log 通常是物理日志(磁盘),记录的是数据页的物理修改,而不是某一行或某几行修改。它用来恢复提交后的物理数据页。 redo log的作用: 数 阅读全文
posted @ 2021-03-15 21:48 smallzhen 阅读(100) 评论(0) 推荐(0) 编辑
摘要:DDL操作,改变表结构: CREATE、ALTER、DROP 命令 DML操作,用来对数据库里的数据的操作:SELECT、UPDATE、DELETE 阅读全文
posted @ 2021-03-14 22:58 smallzhen 阅读(171) 评论(0) 推荐(0) 编辑
摘要:我们都知道慢sql是不好的,那么究竟慢sql会引起什么危害呢?我总结了一下,慢sql可能会造成以下几种危害: 影响用户体验。慢sql的执行时间过长,则会导致用户的等待时间过长,直接影响用户体验。 造成数据库幻读、不可重复读。假设该慢sql是一个更新操作的sql,则会可能出现幻读、不可重复读这种数据库 阅读全文
posted @ 2021-03-14 22:51 smallzhen 阅读(1807) 评论(0) 推荐(0) 编辑
摘要:RESTful API 是服务和消费数据的一种方式,它需要满足以下几个约束条件 客户端-服务器模型:服务器为数据提供服务,客户端连接到服务器以使用数据,客户端与服务器交互通过http请求进行,通过请求传输数据。 无状态:每个请求都被视为独立请求,服务器不应跟踪可能影响将来请求结果的任何内部状态。 统 阅读全文
posted @ 2021-03-12 22:50 smallzhen 阅读(219) 评论(0) 推荐(0) 编辑
摘要:在linux系统中,文件、目录的操作权限可以分为 r(读):4 w(写):2 x(执行):1 假设和值为7,7=4+2+1,代表着rwx三个权限都有;假设和值为6=4+2,代表着rw两个权限不可执行。以此类推。 而777,代表着最高权限。如果某文件被赋予了777权限,表示该文件允许文件的拥有者、文件 阅读全文
posted @ 2021-03-07 19:47 smallzhen 阅读(4006) 评论(0) 推荐(0) 编辑
摘要:mysql与redis同步可以分为三种方案: 通过外部应用程序控制:当写入mysql时,自动将redis同数据删除,等到查询时在Redis查不到再落到mysql查回数据后再写入redis。 通过mysql自动同步刷新Redis,Mysql触发器+UDF函数实现。适合读多写少,不适合并发写场景。 解析 阅读全文
posted @ 2021-03-06 20:21 smallzhen 阅读(1967) 评论(0) 推荐(0) 编辑
摘要:主从复制解决的问题: 1、读写分离可将读负载到多台从库 2、可作为实时备份 3、利用主主复制可实现高可用 主从复制原理: 主库操作数据,并将数据写入Binlog 从库调用I/O线程读取主库的Binlog,并写入自己的RelayLog中,再调用SQL线程从RelayLog中解析数据,从而同步到自己的数 阅读全文
posted @ 2021-03-06 20:19 smallzhen 阅读(53) 评论(0) 推荐(0) 编辑
摘要:redis是单线程模型实现的,即redis使用一个线程处理所有客户端请求。因此以下操作提升Redis运行速度 缩短键值对的存储长度 使用延迟删除特性 设置键值过期时间 禁用长耗时的查询命令 避免大量数据同时失效 限制redis内存大小 使用分布式加购来增加读写速度 以上总结参考:https://mp 阅读全文
posted @ 2021-03-05 00:04 smallzhen 阅读(175) 评论(0) 推荐(0) 编辑
摘要:并发的事务可能存在的问题: 读脏:事务A读到了事务B未提交的数据。 不可重复读:事务A在事务B执行期间修改了数据,导致事务B同一个查询两次结果不一致。 幻读:事务A在事务B执行期间插入了数据,导致事务B先查后插被报重复。 InnoDB的事务隔离级别 读未提交(Read Uncommitted):se 阅读全文
posted @ 2021-03-04 00:09 smallzhen 阅读(93) 评论(0) 推荐(0) 编辑
摘要:背景介绍: 在多线程的环境里,如果共享资源没有上锁,将会出现共享数据混乱的情况。 在单核CPU系统里,系统以时间片调度的方式让多个程序轮流使用处理器,造成了【并发】的假象。 在进程/线程并发执行的过程中,进程/线程之间存在协作的关系,比如互斥、同步。 什么叫进程互斥? 两个或两个以上的进程,不能同时 阅读全文
posted @ 2021-03-03 00:12 smallzhen 阅读(174) 评论(0) 推荐(0) 编辑
摘要:laravel框架优点 文档丰富 大量的第三方开源库 安全机制齐全(表单验证等) 中间件和路由对访问进行过滤及控制,避免非法请求 错误处理机制友好 支持composer包管理工具 集合了php比较新的特性及各种设计模式。 缺点: 基于组件式的框架,比较臃肿 性能比yaf等小型框架的效率会低一些 较复 阅读全文
posted @ 2021-03-01 23:48 smallzhen 阅读(2047) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示