Linux常用命令总结

目录切换命令 cd usr: 切换到该目录下 usr 目录 cd ..(或cd../): 切换到上一层目录 cd /: 切换到系统根目录 cd ~: 切换到用户主目录 cd -: 切换到上一个操作所在目录 目录的操作命令(增删改查) mkdir 目录名称: 增加目录。 ls/ll(ll 是 ls -l 的别名,ll 命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息。 f...

进程状态与僵尸进程、孤儿进程

进程状态一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命状态 一般来说,进程有五种状态: 创建状态: 进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态 就绪状态: 进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即...

Redis分布式锁

问题描述随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题! 分布式锁主流的实现方案 基于数据库实现分布式锁 基于缓存(Redis等) 基于...
NoSQL

URI和URL的区别是什么?

URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。 URL(Uniform Resource Location) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。 URI的作用像身份证号一样,URL的作用更像家庭住址一样。URL是一种具体...

Java学习推荐书籍

列举一些接下来要读的书单…

随笔

海量数据下,如何快速查找一条记录?

1、使用布隆过滤器,快速过滤不存在的记录。 使用Redis的bitmap结构来实现布隆过滤器。 2、在Redis中建立数据缓存。将我们对Redis使用场景的理解尽量表达出来。 以普通字符串的形式来存储,(userld -> user.json)。 以一个hash来存储一条记录(userld key-> username field-> ,userAge->)。以一...

Redis 如何配置Key的过期时间?他的实现原理是什么?

Redis设置key的过期时间 EXPIRE SETEX 实现原理定期删除每隔一段时间, 执行一次删除过期key的操作。 懒汉式删除当使用get、getset等指令 去获取数据时,判断key是否过期。 过期后,就先把key删除,再执行后面的操作。 Redis是将两种方式结合来使用。 定期删除:平衡执行频率和执行时长。 定期删除时会遍历每个datapase(默认16个),检查当前库中指定...
NoSQL

如何设计一个分布式锁?如何对锁的性能进行优化?

分布式锁的本质就是在所有进程都能访问到的一个地方,设置一一个锁资源, 让这些进程都来竞争锁资源。数据库、zookeeper, Redis。 通常对于分布式锁,会要求响应快、性能高、与业务无关。 Redis实现分布式锁 SETNX key value: 当key不存在时,就将key设置为value,并返回1。如果key存在,就返回0。 EXPIRE key locktime: 设置key的...
并发

MySQL redo log、binlog、undo log 区别与作用

日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。

SQL执行过慢,如何排查以及调优

导致SQL执行慢的原因 硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。 没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引的树结构就不完整了。所以互联网公司的数据做的是假删除,一是为了做数据分析,二是为了不破坏索引 ) 数据过多(分库分表) 服务器调优及各个参数设置(调整my.cnf) 查询出的...