05 2022 档案
摘要:mysql 操作json 1.根据json字段值查询结果 2.修改json中的字段值
阅读全文
摘要:leetcode 每日一题 1022. 从根到叶的二进制数之和 class Solution { int sum = 0; public int sumRootToLeaf(TreeNode root) { f(root, 0); return sum; } private void f(TreeN
阅读全文
摘要:mysql日志 1.四种日志(错误日志,二进制日志,查询日志,慢查询日志) 错误日志 记录mysql启动和停止时,以及在运行过程中发生任何严重错误时的相关信息。 show variables like 'log_error%'; 找到错误日志文件路径 二进制日志(默认没有开启) 二进制日志(binl
阅读全文
摘要:mysql主从复制原理 binlog日志,对数据库的增删改操作都会写入一个日志文件,记录这个操作的日志 8.0之前需要手动在my.ini 或 my.cnf文件下配置 #篇日志开启binlog日志,日志的文件前缀为mysqlbin 》生成的文件名如 mysqlbin.000001,mysqlbin.0
阅读全文
摘要:redis主从架构 主负责写,从负责读 redis replication redis主从架构-》读写分离架构-》可支持水平扩展的度高并发架构 1.redis采用异步的方式复制数据到slave节点,redis 2.8开始slave node会周期性的确认自己每次复制的数据量 2.slave节点用旧的
阅读全文
摘要:mysql高级命令 mysqlbinlog 由于服务器生成的二进制日志文件以二进制格式保存,所以如果想要检查这些文本的文本格式,就会使用到mysqlbinlog日志管理工具 mysqlbinlog [options] log-files1 log-files2 ...选项: -d, --datab
阅读全文
摘要:mysql并发参数调整 mysql是多线程的,控制并发连接的主要参数包括max_connections,back_log,thread_cache_size,table_open_cache. max_connections 控制允许连接mysql数据库的最大数量,默认值是151.如果状态变量con
阅读全文
摘要:mysql锁 1.锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(如CPU、EAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。
阅读全文
摘要:MYSQL技巧(正则、数字、字符串、日期、聚合函数) 使用正则表达式 select * from user where name regexp '^aaa' 数字函数 函数名称作用 ABC 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL和CEILING 两个函数功能相同,都是返回不小于参数
阅读全文
摘要:mysql 应用层优化 1.应用优化 使用连接池 减少对musql的访问 能够一次连接处理的就不要两次连接,增加缓存 负载均衡 使用mysql复制来完成读写分离,一个服务器写,多个服务器读。 使用分布式数据库架构 2.mysql中查询缓存优化(8.0移除,可使用ProxySQL ) 开启mysql的
阅读全文
摘要:大批量数据导入 1.数据顺序id比乱序id的性能快 因为主键索引的原因,乱序id插入导致,索引树的结构在一直改变 2.关闭唯一性校验 在导入数据前执行set unique_checks=0,关闭唯一性校验,在导入结束后执行set unique_checks=1,恢复唯一性校验,可以提高导入的效率。
阅读全文
摘要:mysql索引 索引分类 1.单列索引:即一个索引只包含单个列,一个表可以有多个单列索引 2.唯一索引:索引列的值必须唯一,但允许有空值 3.复合索引:即一个索引包含多个列 创建、查看、删除、修改索引 创建索引 create index idx_city_name on city(name); cr
阅读全文
摘要:匹配纯字符,思路:字符串不能包含数字,字母和中文 String.matches() 匹配方法 String str = "..."; System.out.println(!str.matches(".*[a-z0-9A-Z\\u4e00-\\u9fa5]+.*")); Pattern.compil
阅读全文
摘要:leetcode 每日一题 965. 单值二叉树 class Solution { public boolean isUnivalTree(TreeNode root) { if (root == null) { return true; } if(root.left != null && root
阅读全文
摘要:分库分表中间件 比较常见的包括:cobar、TDDL、sharding-jdbc、atlas、mycat cobar:阿里b2b团队开发和开源的,属于proxy层方案。不支持读写分离、存储过程、跨库join和分页等操作。 TDDL:淘宝团队开发的,属于client层方案。不支持join、多表查询等语
阅读全文
摘要:分布式事务 2pc 3pc tcc(try、confirm、cancel) 这个其实用了补偿机制,分为三个阶段: 1)try阶段:这个阶段说的是对各个服务的资源做检测以及对资源进行锁定或者预留 2)confirm阶段:这个阶段说的是在各个服务中执行实际的操作 3)cancel阶段:如果任何一个服务的
阅读全文
摘要:leetcode 每日一题 462. 最少移动次数使数组元素相等 II class Solution { public int minMoves2(int[] nums) { Arrays.sort(nums); int num = nums[nums.length / 2]; int res =
阅读全文
摘要:leetcode 每日一题 953. 验证外星语词典 class Solution { public boolean isAlienSorted(String[] words, String order) { char[] chars = order.toCharArray(); int[] arr
阅读全文
摘要:leetcode 每日一题 面试题 04.06. 后继者 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNo
阅读全文
摘要:服务接口层(Service):与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。 配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心,可以直接new配置类,也可以通过Spring解析配置生成配置类。 服务代理层(Prox
阅读全文
摘要:1.dubbo通信协议 dubbo支持不同的通信协议 dubbo协议 dubbo://192.168.0.1:20188 默认就是走dubbo协议的,单一长连接,NIO异步通信,基于hessian作为序列化协议 适用场景:传输数据小(每次在100kb以内),但是并发量很高 2.dubbo负载均衡策略
阅读全文
摘要:dubbo SPI 机制 和 JDK SPI Java SPI ServerLoad.load 加载接口的实现类,只需要把实现类的全限定名配置到META-INF/services/文件夹下,然后要一个文件,文件名为接口名,内容就是实现类的全限定名 dubbo SPI dubbo 也用了spi思想,不
阅读全文
摘要:leetcode 每日一题 面试题 01.05. 一次编辑 class Solution { public boolean oneEditAway(String first, String second) { char[] a = first.toCharArray(); char[] b = se
阅读全文
摘要:redis和数据库一致性问题 1.保证redis和数据库数据一致性,一般采取最终一致性做法。如果要强一致性,这个性能基本就不行了。 redis 没有缓存更新命令,倒是可以用添加命令对value进行覆盖。不过我们一般不这样做。 因为比如一个缓存1分钟跟新100次,这个时候redis也会更新100次,可
阅读全文
摘要:redis事务 redis不支持事务回滚,但是他会检查每一个事务中的命令是否错误。 redis不支持检测那些由程序员造成的逻辑错误,比如对string类型的数据用了对hash数据的操作命令 multi命令:开启一个事务,它总是返回ok。multi执行之后,客户端可以继续向服务器发送任意多条命令,这些
阅读全文
摘要:leetcode 每日一题 944. 删列造序 class Solution { public int minDeletionSize(String[] strs) { int num = 0; for (int j = 0; j < strs[0].length(); j++) { char bu
阅读全文
摘要:一、节点间的内部通信机制 1、基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在莫个节点上,而是互相之间不断通信,保持整个集群所有节点的数据是完整的 集中式:好处在于,元数据的更新和读取,时效性非常号,一
阅读全文
摘要:redis缓存击穿,穿透,雪崩 redis缓存雪崩 缓存雪崩是指,有大量的缓存在同一时刻过期或者redis宕机,造成大量的请求打入数据库 解决方案: redis设置过期时间尽量分散,设置随机过期时间。 事前:保证高可用,集群搭建,主从+哨兵,读写分离,cluster集群 事中:本地ehcache缓存
阅读全文
摘要:leetcode 每日一题 942. 增减字符串匹配 class Solution { public int[] diStringMatch(String s) { int[] arr = new int[s.length()+1]; int l = 0; int r = s.length(); f
阅读全文
摘要:mysql int(1) 和 int(10) 和 int(11)区别 CREATE TABLE IF NOT EXISTS `test2` (`t1` int(5) NOT NULL,`t2` int(11) unsigned zerofill NOT NULL,`t3` int(11) un
阅读全文
摘要:leetcode 每日一题 933. 最近的请求次数 class RecentCounter { private List<Integer> list; public RecentCounter() { list = new ArrayList<>(); } public int ping(i
阅读全文
摘要:leetcode 每日一题 713. 乘积小于 K 的子数组 瞎写,自己都不知道写的什么,缺了条件就补条件 class Solution { public int numSubarrayProductLessThanK(int[] nums, int k) { int end = 0; int su
阅读全文