kafka - 1 quick start 一、本地环境搭建安装https://kafka.apache.org/downloads 官网下载,解压到/usr/local目录 配置zookeeper.properties: 1234dataDir=/tmp/zookeeperclientPort=2181maxClientCnxns=0admin.enableServer=false server.properites: 12345678 2023-07-20 #Kafka
Java-1 并发 背景多线程并发编程是开发高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能。 从底层来说, 单核时代:多线程主要为了提高单进程利用CPU和IO的效率。 假设只运行了一个线程,请求IO的时候,如果只有一个线程,那么这个线程被IO阻塞则整个进程被阻塞。 如果运行了多个线程,当一个线程被IO阻塞时,其他线程还可以继续使用CPU。 多核时代:多线程主要为了提高进程 2023-07-15 #java
java 集合类源码 背景看一下日常最常用的两个集合类ArrayList、HashMap和一个线程安全ConcurrentHashMap的底层实现。 源码基于JDK17。 ArrayList是什么小结:ArrayList底层是基于数组实现。容量能动态变化。 特点:查询效率高,插入修改效率低,线程不安全。使用频率很高。 初始化12345678910111213public ArrayList(int initialCap 2023-06-01 #source code
redis 5 - 一些特性 一、过期删除Redis如何实现过期删除?Redis支持对key设置过期时间。因此需要有机制对过期键执行删除操作。 那这是如何实现的呢? 首先,Redis会维护一个「过期字典」。当我们对一个key设置了过期时间,Redis就会将key和过期时间存入过期字典。 当我们查询一个key时,如果该key存在于过期字典中,那么就会将它的过期时间与当前时间做比较。如果它已经过期,则不返回值。 Redis有两种过 2023-05-14 #redis
redis 4 - 高可用 一、简介持久化技术保证了即使宕机也不会丢失数据。 但是单点故障会存在别的问题: 服务器宕机后,整个服务完全不可用 如果单台服务器的硬盘损坏,数据仍然会丢失 要避免单点故障,就需要使用集群,多加几台服务器。 Redis采用的是 「主从复制」 + 「读写分离」方案 二、如何实现数据同步?第一次同步如何确定谁是主服务器?对服务器B执行命令,即可将B服务器变成A服务器的从服务器。 1replicao 2023-05-04 #redis
redis 3 - 持久化 一、概述(本质是Redis是个有状态服务,需要考虑状态不丢失) Redis是内存数据库。一旦断电,内存中的数据都会丢失。因此Redis需要对数据进行持久化,防止数据丢失。 Redis有两种持久化技术,分别是AOF和RDB。 二、AOFAppend Only File. 即把所有的写操作以追加的方式记录在文件里。 Redis在重启的时候,通过回放文件中的操作,就可以恢复数据。 在Redis中AOF功 2023-04-30 #redis
log4j2 quick start引入依赖(并排除spring-boot-starter-logging依赖 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> 2023-04-25 #log
redis 2 - 高性能 一、概述redis为什么快? 基于内存 基于Reactor模式设计开发了一套高效的事件处理模型,主要是单线程事件循环和IO多路复用 高性能的数据结构实现 二、响应模型IO多路复用使用 I/O 多路复用技术来高效地管理多个网络连接。这允许 Redis 的单个线程非阻塞地处理多个客户端连接,接受请求并发送响应,而不是为每个连接分别阻塞等待。 事件驱动 事件处理:Redis 使用基于事件的模型来处 2023-04-25 #redis
hexo 2 - 部署 一、局域网部署其实还是本地部署,只是通过端口把资源暴露局域网内的设备。 12341. 查看本机局域网地址系统偏好设置 -> 网络 -> wifi2. hexo s -i 192.168.x.x3. 同局域网的其他设备访问该地址 192.168.x.x:4000 二、前置:typora配置图床Markdown语法插入图片时使用图片链接,而不是整个图片。而typora图片默认会在本地存储 2023-04-16 #hexo
redis 1 - quick start 一、是什么Redis是基于C语言的一个NoSQL数据库,保存在内存中,读写快,被广泛应用于分布式缓存方向。 二、本地环境搭建安装 redis.io下载redis 解压到/usr/local目录下 文件夹改名:mv redis-7.0.4 redis 进入redis/src目录,sudo make + sudo make test + sudo make install 配置 redis 目录下 2023-04-06 #redis