Go语言基本概念和语法
Go语言(Golang)是Google于2009年发布的开源编程语言,以简洁语法、高效并发处理和云计算支持著称,广泛应用于后端开发与云原生领域。Golang是一种静态强类型、编译型语言,Golang具有很强的表达能力,得益于其并发机制,用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。
参考原文:
Golang基础语法
golang语言教程
全面掌握Golang全栈开发:从入门到实战
Python 速览:Python 速览 — Python 3.14.0 文档
Golang标准库文档:Golang标准库文档
简介及环境搭建golang又称go language简称golang,go语言是谷歌推出的一种编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。
安装安装Go工具的步骤如下:对于Linux、MacOS及FreeBSD系统,您需要下载适当的tar文件,并将其解压到/usr/local目录下,创建Go目录树/usr/local/go(可能需 ...
Python基本概念和语法
Python在AI场景深度融合、实时数据处理需求增长、物联网与边缘计算拓展等方向发展趋势向好。Python在AI领域的应用从基础工具转向实际场景落地,企业急需掌握大模型微调、轻量化部署的开发者,同时AutoML工具降低了非专业背景开发者介入门槛,但实战经验仍被优先考虑。电商平台用户行为分析、金融风控等领域要求开发者掌握PySpark、Dask等工具进行TB级数据高效处理,同时需将分析结果转化为业务决策支持。 智能工厂、智慧城市等场景推动Python在边缘设备数据采集、协议转换等领域的应用,相关岗位需求逐步增长。
在学习Python的过程中,建议优先选择包含实战项目的课程,如AI场景的大模型微调案例、实时数据处理模拟项目等,避免纯理论教学。同时关注Python社区版本更新和工具迭代,课程需及时纳入新应用场景(如当前Python 3.14.0版本特性)。建议每天手写代码,从简单逻辑开始积累,利用python -i命令实时测试片段。
参考原文:
零基础学Python入门教程
Python入门,详细基础教程,零基础入门,详细图文
Python 速览:Python 速览 — Python 3 ...
服务限流
对软件系统来讲,限流就是对请求的速率进行限制,避免瞬时的大量请求击垮软件系统。因为软件系统的处理能力是有限的,当超过了其处理能力的范围,软件系统可能直接宕机。限流可能会导致用户的请求无法被正确处理或者无法立即被处理,不过,这往往也是权衡了软件系统的稳定性之后得到的最优解。
现实生活中,处处都有限流的实际应用,就比如排队买票是为了避免大量用户涌入购票而导致售票员无法处理。
本文主要介绍了常见的限流算法、限流对象的选择以及单机限流和分布式限流分别应该怎么实现。
参考文章:
服务限流详解
常见限流算法简单介绍 4 种非常好理解并且容易实现的限流算法!
图片来源于 InfoQ 的一篇文章《分布式服务限流实战,已经为你排好坑了》。
固定窗口计数器算法固定窗口其实就是时间窗口,其原理是将时间划分为固定大小的窗口,在每个窗口内限制请求的数量或速率,即固定窗口计数器算法规定了系统单位时间处理的请求数量。
假如我们规定系统中某个接口 1 分钟只能被访问 33 次的话,使用固定窗口计数器算法的实现思路如下:
将时间划分固定大小窗口,这里是 1 分钟一个窗口。
给定一个变量 counter 来记录 ...
Redis的持久化机制
使用缓存时经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中。大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或是为了做数据同步(比如 Redis 集群的主从节点通过 RDB 文件同步数据)。Redis 持久化机制(RDB 持久化、AOF 持久化、RDB 和 AOF 的混合持久化)相关的问题比较多,也比较重要,本文总结了 Redis 持久化机制相关的知识点和问题。
参考文章:
Redis 持久化机制详解
Redis持久化机制Redis 不同于 Memcached 的很重要一点就是,Redis 支持持久化,而且支持 3 种持久化方式:
快照(snapshotting,RDB)
只追加文件(append-only file, AOF)
RDB 和 AOF 的混合持久化(Redis 4.0 新增)
RDB(Redis Database):指定的时间间隔能对你的数据进行快照存储。
数据备份机制RDB(默认):数据每隔一段时间写进磁盘rdb文件,故障后从文件读。可以在redis.conf配置多少秒内多少key修改时自动bgsave。占CPU和内存但恢复 ...
三大缓存读写策略
Cache的读写策略是指在计算机系统中,对于缓存(Cache)的数据读取和写入操作所采取的策略和方法。不同读写策略可根据系统需求和应用场景进行选择和配置,以达到最优性能和效果。本文简单记录了三大缓存读写策略旁路缓存模式、读写穿透、异步缓存写入,它们各有优劣不存在最佳模式,根据具体的业务场景选择适合的缓存读写模式。
参考文章:
3种常用的缓存读写策略详解
Cache Aside Pattern(旁路缓存模式)Cache Aside Pattern :平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。该策略中服务端需要同时维系 db 和 cache,并且以 db 的结果为准。
缓存读写步骤写:由应用先更新 db;然后应用再直接删除 cache 。
读 :应用从 cache 中读取数据,读取到就直接返回;若读取不到应用就会从 db 中读取数据返回;然后应用再把数据写到 cache 中。
**在写数据的过程中,是否可以先删除 cache 后更新 db? **
答案:肯定不可以!因为这样可能会造成 数据库(db)和缓存(Cache)数据不一致的问题。
举例:请求 1 先写数据 ...
Redis缓存与数据库的一致性
在处理涉及 Redis 和数据库(如 MySQL)的应用时,确保数据的一致性是非常关键的。特别是在高并发环境下,数据的一致性问题可能会变得尤为突出。
推荐文章:
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
四种基础同步策略保证缓存和数据库的双写一致性,共有四种同步策略,即先更新缓存再更新数据库、先更新数据库再更新缓存、先删除缓存再更新数据库、先更新数据库再删除缓存。
先更新缓存再更新数据库:第二步失败缓存库是脏数据
先更新数据库再更新缓存:第二步失败缓存库是旧数据
先删除缓存再更新数据库:第二步失败缓存库是空数据
先更新数据库、再删除缓存(推荐):第二步失败缓存库是旧数据
更新缓存还是删除缓存更新缓存的优缺点更新缓存的优点是每次数据变化时都能及时地更新缓存,这样不容易出现查询未命中的情况,但这种操作的消耗很大,如果数据需要经过复杂的计算再写入缓存的话,频繁的更新缓存会影响到服务器的性能。如果是写入数据比较频繁的场景,可能会导致频繁的更新缓存却没有业务来读取该数据。
删除缓存的优缺点(推荐)删除缓存的优点是操作简单,无论更新的操作复杂与否 ...
Redis的缓存穿透、缓存击穿、缓存雪崩
本文简单记录了Redis的缓存穿透、缓存击穿、缓存雪崩三大常见生产问题,及对应的解决方案。
推荐文章:
Redis常见面试题总结(下)
缓存穿透简介缓存穿透:简单来说就是大量请求的 key 是不合理的,缓存和数据库中都不存在,可用户仍源源不断的发起请求,导致每次请求都到数据库,从而压垮数据库。
举例:某黑客故意制造一些非法的 key 发起大量请求,导致大量请求落到数据库,结果数据库上也没有查到对应的数据。也就是说这些请求最终都落到了数据库上,对数据库造成了巨大的压力。
解决办法
业务层校验
用户发过来的请求,根据请求参数进行校验,对于明显错误的参数,直接拦截返回。
如请求参数为主键自增id,那么对于请求小于0的id参数,可以直接返回错误请求。
如传入的邮箱格式不对时直接返回错误消息给客户端。
不存在数据设置短过期时间
对于某个查询为空的数据,可以将这个空结果进行Redis缓存,但设置很短的过期时间,命令:SET key value EX 30000。
这种方式可解决请求 key 变化不频繁的情况,若黑客恶意攻击,每次构建不同的请求 key,会导致 Redis 缓存大量无 ...
达梦数据库SQL操作
达梦数据库(DM Database)是一款由中国公司自主研发的关系型数据库管理系统。它在安全性、性能、易用性等方面具有许多独特的优势。本文简单记录其 sql 简单使用。更多 SQL 语言使用说明,请参考《DM_SQL 语言使用手册》,手册位于数据库安装路径 /dmdbms/doc 文件夹下。如有其他问题,请在社区内咨询。
参考文章:
达梦技术文档
常规数据类型DM SQL 程序支持所有的 DM SQL 数据类型,包括:精确数值数据类型、近似数值数据类型、字符数据类型、多媒体数据类型、一般日期时间数据类型、时间间隔数据类型。此外,DM SQL 还扩展支持了 %TYPE、%ROWTYPE、记录类型、数组类型、集合类型和类类型,用户还可以定义自己的子类型。
DM 数据库具有 SQL-92 的绝大部分数据类型,常规数据类型主要包括如下几大类:
字符数据类型
数值数据类型
位串数据类型,即 bit 类型
日期时间数据类型,包括一般日期时间数据类型、时区数据类型和时间间隔数据类型
多媒体数据类型,主要包括两种格式,字符串和二进制
字符数据类型根据数据库初始化时的参数不同,字符串中能存储的汉 ...
达梦数据库基础
达梦数据库(DM Database)是一款由中国公司自主研发的关系型数据库管理系统。它在安全性、性能、易用性等方面具有许多独特的优势。本文简单记录其基本特性,下载安装。
参考文章:
达梦数据库的基础认识与使用
达梦技术文档
达梦数据库基础DM 特点达梦数据库在安全性、高性能、高可用、易用性、可扩展性等方面具有许多独特的优势,具体如下。
高安全性 多层安全机制:达梦数据库提供了多层次的安全机制,包括用户认证、权限管理、审计日志等。 加密技术:支持数据传输加密和存储加密,确保数据在传输和存储过程中的安全性。 合规性:符合国家信息安全标准,支持国密算法(如SM2、SM3、SM4),适用于政府、金融等高安全要求的行业。
高性能 并行处理:支持并行查询和并行加载,能够高效处理大规模数据。 优化器:智能查询优化器能够自动选择最优的查询计划,提高查询性能。 缓存机制:高效的缓存机制减少了磁盘I/O操作,提高了整体性能。
高可用性 集群支持:支持多种高可用架构,如主备复制、分布式集群等,确保系统的高可用性和故障恢复能力。 自动故障切换:在发生故障时,系统可以自动切换到备用节点,保证业务连续性。 ...
Redis集群
在互联网高并发、海量数据的场景下,单机 Redis 已无法满足系统对性能、存储和高可用性的需求。Redis 集群作为分布式缓存的终极解决方案,通过巧妙的架构设计实现了数据分片、自动故障转移和动态扩容。本文记录了相关原理、 Redis 集群的核心机制,及完整的实战部署流程。本文简单介绍了Redis的三种集群部署模式:主从模式,Sentinel(哨兵)模式,Cluster模式。
参考文章:
Redis集群部署的三种模式
Redis 集群模式Rdis最开始使用主从模式做集群,若master宕机需手动配置slave转为master;后来为了高可用提出哨兵模式,该模式下有一个哨兵监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充;所以在3.x提出cluster集群模式。
三种集群模式对比Redis 发展至今形成了三种典型的集群模式,每种模式都针对不同的业务需求进行了优化:
模式
版本
核心优势
局限性
主从模式
Redis 2.8前
数据备份与读写分离
手动故障转移、无法动态扩容
哨兵模式
Redis 2.8 ...





