Russ Xia Blog

身处寒夜,把握星光。

Redis集群

Redis集群、Gossip协议、Codis

Redis集群 对于数据存储领域,当数据量或者请求流量大到一定程度后,就必然会引入分布式,无论其是内存缓存还是持久化存储。 Redis提供了三种集群模式,分别是主从模式、哨兵模式、集群模式。 主从模式 Redis的主从模式,允许 Redis 将数据从一个主节点(Master)复制到一个或多个从节点(Slave)。主节点负责处理所有的写操作,而从节点复制主节点的数据,并响应读操作。 主从...

Java内存结构笔记

JVM内存结构

Java内存结构 Java内存结构主要分为5个部分: 线程私有的:程序计数器、虚拟机栈、本地方法栈 线程共享的:堆、方法区 线程私有 程序计数器 程序计数器(Program Counter, PC用于存储当前线程正在执行的字节码指令地址。 字节码执行过程中,程序计数器的值会随着程序的执行而不断更新,以保证程序能顺序执行、控制分支跳转或循环。 同时,线程切换后能恢复到正确的...

零拷贝技术

零拷贝技术以及Java中的实践

什么是零拷贝技术 传统I/O方式中,数据从磁盘到发送到网卡需要被拷贝4次(2次DMA拷贝,2次CPU拷贝) DMA(Direct Memory Access,直接内存访问) 是一种 硬件机制,允许 外设(如磁盘、网卡)直接与内存进行数据交换,而无需 CPU 参与数据搬运。 传统方式IO拷贝过程 磁盘 --(DMA)→ 内核缓冲区 --(CPU拷贝)→ 用户缓冲...

领域驱动模型学习笔记(一)

领域模型

领域驱动模型学习笔记(一) DDD的基本概念 领域驱动设计(Domain-Driven Design,DDD)是一种以业务领域为中心的软件设计方法,它围绕着领域模型进行设计,通过分层架构将领域独立出来。 领域模型 领域模型是DDD的核心,是业务概念、规则和行为的抽象表示。在DDD中,所有的设计决策和开发活动都应围绕领域模型展开。领域模型帮助开发团队与业务团队达成共同理解,确保技术实现反映...

使用PostgreSQL做LBS查询

使用PostgreSQL查询附近的人/附近的店

使用PostgreSQL做LBS查询 PostgreSQL的PostGis模块,提供了SFSQL(Simple Features for SQL规范从 OGC 中定义而来,它定义了构成标准空间数据库的类型和函数。)的完整支。 下面是关于PostGis的简单介绍。 https://postgis.net/workshops/zh_Hans/postgis-intro/introductio...

GIS的基础概念

Geographic Information Systems,GIS的定义、常用术语

GIS的定义 地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入、存储、查询、分析和显示地理数据的计算机系统,可以分为以下五部分: 人员,是GIS中最重要的组成部分。开发人员必须定义GIS中被执行的各种任务,开发处理程序。熟练的操作人员通常可以克服GI...

图数据库及其选型

什么是图数据库,如何选择图数据库

背景 在做MyClub时,产品需要根据用户的社交关系做推荐排名。针对用户的二度好友所在的房间,能提高分发的权重。 如果使用传统的关系型数据库,无法满足业务需求。考虑使用图数据库来实现用户的一度、二度好友查询。 什么是图数据库 图数据库(graph database)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与...

JVM中的Safe Point是什么

Safe Point的定义和实现机制

什么是Safe Point A point during program execution at which all GC roots are known and all heap object contents are consistent. From a global point of view, all threads must block at a safepoint bef...

JDK9中String为何改为byte数组存储

JDK9中String改为byte数组存储有何优点

JDK8中String的字符编码 JDK 8 中,String以char[]形式存储,字符串始终在内存中使用UTF-16编码,每个字符占用两个字节。 即使该字符是ASCII字符或Latin-1字符,这种情况也不例外。因此,可以确认在JDK 8中,String对象始终在内存中使用UTF-16编码。 你可以在输入、输出、转换过程中,将其指定为特定字符编码,如UTF-8。 String a =...

AppleTV常用安装软件

AppleTV常用安装软件

AppleTV常用安装软件 Infuse AppleTV上必装的4K蓝光播放器,可以播放NAS和电脑中的视频内容,自动匹配电影和电视剧的海报。可以添加Alist挂载的webdav。 缺点就是价格有点小贵,建议年付,美区年付9.9刀,可以拼车。开通的时候,最好用外区账号开通,不然要通过trakt分享给设备,比较麻烦。 APTV 看直播,需要自己去找iptv订阅源。 官方文档 一...