12 2024 档案

摘要:实体和值对象组成聚合,再根据业务,将多个聚合划定到同一限界上下文,并在限界上下文内完成领域建模。 聚合只是单纯将一些共享父类、密切关联的对象聚集成一个对象树吗?如果是这样,对于存在于这个树中的对象,有没有一个实用的数目限制? 既然一个聚合可以引用另一个聚合,是否可以深度遍历下去,并且在此过程中修改对 阅读全文
posted @ 2024-12-31 22:34 似梦亦非梦 阅读(150) 评论(0) 推荐(1) 编辑
摘要:当你在使用 Redis 时遇到错误信息 DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user,这意味着 Redis 阅读全文
posted @ 2024-12-30 23:48 似梦亦非梦 阅读(461) 评论(0) 推荐(0) 编辑
摘要:新建wpf页面DataGridAutoView 引用空间: xmlns:ga="clr-namespace:WPFDemoMVVM.Helpers" <Window x:Class="WPFDemoMVVM.View.DataGridAutoView" xmlns="http://schemas.m 阅读全文
posted @ 2024-12-30 20:24 似梦亦非梦 阅读(140) 评论(0) 推荐(0) 编辑
摘要:1.线程池(Default Thread Pool): 使用 ThreadPool.QueueUserWorkItem、Task.Run 和 Task.Factory.StartNew。 适用于大多数后台任务和 I/O 操作。 2.自义任务调度器(Custom Task Scheduler): 通过 阅读全文
posted @ 2024-12-29 21:47 似梦亦非梦 阅读(188) 评论(0) 推荐(1) 编辑
摘要:索引选择性低 索引选择性:选择性是指索引列中不同值的数量与总行数的比率。选择性高的索引(即索引列中的值分布较广)通常更有效。 全表扫描更高效:如果索引列的选择性很低(即大多数行具有相同或相似的值),全表扫描可能比使用该索引更高效。 查询条件不适用索引 查询条件复杂:某些查询条件可能使得索引无法有效使 阅读全文
posted @ 2024-12-29 21:41 似梦亦非梦 阅读(20) 评论(0) 推荐(0) 编辑
摘要:什么是泛型? 泛型(Generics) 是一种编程特性,允许你在定义类、接口和方法时使用类型参数,而不是具体的数据类型。这样可以提高代码的复用性、类型安全性和灵活性。泛型在 C#、Java 等多种编程语言中都有广泛的应用。 泛型的好处? 1.类型安全: 避免类型转换错误:泛型确保在编译时进行类型检查 阅读全文
posted @ 2024-12-27 17:07 似梦亦非梦 阅读(54) 评论(0) 推荐(0) 编辑
摘要:string 和 StringBuilder 在 C# 中用于处理字符串,但它们在性能和使用场景上有显著的区别。以下是详细的比较和解释: 1. 值类型 vs 引用类型 string: 类型:值类型(value type),但实际存储在托管堆(managed heap)上。 不可变性:string 是 阅读全文
posted @ 2024-12-27 17:06 似梦亦非梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要:不能,因为String类是被final修饰的类型,final类是不能被继承的,String类是不可变类型(Immutable)类。 至于为什么要加final或将String类设置成不可变类,主要是两点: 第一个原因是线程安全:不可变对象始终是线程安全的,因为线程必须完全构建它们,然后才能将它们传递给 阅读全文
posted @ 2024-12-27 17:05 似梦亦非梦 阅读(6) 评论(0) 推荐(0) 编辑
摘要:在 .NET 中,如果你在一个同步方法中调用异步方法,可能会导致一些问题和潜在的性能瓶颈。以下是详细的解释和可能的情况: 潜在的问题 死锁(Deadlock): 在同步方法中调用异步方法并使用 Wait() 或 Result 可能会导致死锁,特别是在使用 SynchronizationContext 阅读全文
posted @ 2024-12-27 17:03 似梦亦非梦 阅读(38) 评论(0) 推荐(0) 编辑
摘要:线程互斥(Thread Mutua lExclusion)是一种同步机制,用于确保在多线程环境中,同一时间只有一个线程可以访问特定的资源或代码段。线程互斥的主要目的是防止多个线程同时修改共享数据,从而避免数据不一致和竞态条件(Race Conditions)。 什么是竞态条件(Race Condit 阅读全文
posted @ 2024-12-27 17:00 似梦亦非梦 阅读(14) 评论(0) 推荐(0) 编辑
摘要:线程同步是指在多个线程并发执行时,保证它们按照一定的顺序执行以达到正确的结果。 常用的线程同步机制有以下几种: 互斥锁:使用互斥锁(Mutex)可以保证在同一时间只有一个线程可以访问共享资源。当一个线程获得了互斥锁后,其他线程需要等待该线程释放锁才能继续访问共享资源。 信号量:信号量(Semapho 阅读全文
posted @ 2024-12-27 16:58 似梦亦非梦 阅读(39) 评论(0) 推荐(0) 编辑
摘要:线程安全主要是强调数据安全。 线程安全是指程序在多线程环境下能够正确地执行,不会因为多个线程同时访问和修改共享资源而导致数据不一致或程序崩溃。 在C#中实现线程安全的方法: 锁(Lock): 使用lock关键字可以确保在同一时刻只有一个线程可以访问被锁定的代码块。 private static re 阅读全文
posted @ 2024-12-27 16:57 似梦亦非梦 阅读(68) 评论(0) 推荐(0) 编辑
摘要:分库设计思路 确定分片策略: 范围分片:根据某个字段的值范围进行分片,例如按用户的ID范围。 哈希分片:使用哈希函数将某个字段的值映射到不同的分片上,例如按用户的ID哈希值。 列表分片:将数据按某种列表或集合的方式分片,例如按地域或业务类型分片。 数据一致性: 确保分库后的数据一致性,特别是在跨库操 阅读全文
posted @ 2024-12-27 16:53 似梦亦非梦 阅读(39) 评论(0) 推荐(0) 编辑
摘要:主键索引(Primary Key Index)和普通索引(Regular Index 或 Secondary Index)在数据库中是两种不同类型的索引,它们在功能、特性和使用场景上有一些重要的区别。以下是详细的对比: 23.1 主键索引(Primary Key Index) 唯一性: 主键索引必须 阅读全文
posted @ 2024-12-27 16:51 似梦亦非梦 阅读(60) 评论(0) 推荐(0) 编辑
摘要:什么是IOC? IOC(Inversion of Control,控制反转) 是一种设计原则,广泛应用于软件设计中,特别是在面向对象编程(OOP)中。IOC的核心思想是将对象的创建和管理从应用程序的代码中分离出来,交给一个外部的容器或框架来处理。这种设计原则有助于提高代码的可维护性、可测试性和模块化 阅读全文
posted @ 2024-12-27 16:48 似梦亦非梦 阅读(253) 评论(0) 推荐(0) 编辑
摘要:什么是泛型? 泛型(Generics) 是一种编程技术,广泛应用于面向对象编程(OOP)中,特别是在C#、Java等现代编程语言中。泛型的核心思想是创建可以在多种数据类型上工作的类、接口和方法,而不需要为每种数据类型单独编写代码。这不仅提高了代码的重用性,还增强了类型安全性,减少了运行时错误。 泛型 阅读全文
posted @ 2024-12-27 16:43 似梦亦非梦 阅读(109) 评论(0) 推荐(0) 编辑
摘要:微服务(Microservices) 是一种软件架构设计风格,它将应用程序分解为一组小的、独立的服务。每个服务实现特定的业务功能,并且可以独立部署、扩展和维护。这种架构设计旨在提高应用程序的灵活性、可扩展性和可维护性,尤其是在处理复杂和大规模的应用程序时。以下是微服务架构的详细解释和相关特点: 微服 阅读全文
posted @ 2024-12-27 16:40 似梦亦非梦 阅读(28) 评论(0) 推荐(0) 编辑
摘要:在微服务架构中,分布式事务是一个复杂且常见的挑战。分布式事务是指跨越多个微服务(即多个数据库)的事务,这些服务需要协同工作以确保数据的一致性和完整性。由于微服务通常是独立部署和管理的,每个服务都有自己的数据库,因此传统的单数据库事务管理机制无法直接应用。以下是分布式事务的详细解释、挑战以及常见的解决 阅读全文
posted @ 2024-12-27 16:38 似梦亦非梦 阅读(28) 评论(0) 推荐(0) 编辑
摘要:在微服务架构中,一阶段提交(One-Phase Commit) 和 三阶段提交(Three-Phase Commit, 3PC) 是两种不同的分布式事务管理协议。这些协议旨在确保多个服务(即多个数据库)在分布式环境下的一致性。然而,在微服务架构中,一阶段提交和三阶段提交的使用相对较少,因为它们在性能 阅读全文
posted @ 2024-12-27 16:33 似梦亦非梦 阅读(22) 评论(0) 推荐(0) 编辑
摘要:在微服务架构中,传统的两阶段提交和三阶段提交协议由于其性能开销和可用性问题,通常不被推荐使用。相反,微服务架构更倾向于使用其他分布式事务管理策略,如Saga模式、事件溯源(Event Sourcing)、补偿事务(Compensating Transactions)等,这些策略能够在保证数据一致性的 阅读全文
posted @ 2024-12-27 16:31 似梦亦非梦 阅读(24) 评论(0) 推荐(0) 编辑
摘要:在微服务架构中,分布式追踪(Distributed Tracing) 是一个关键的工具,用于监控和调试复杂的服务调用链。分布式追踪能够帮助开发者理解请求在各个服务之间的流动路径,识别性能瓶颈和故障点,从而提高系统的可靠性和性能。以下是实现微服务追踪的方法以及一些常用的开源组件。 实现分布式追踪的方法 阅读全文
posted @ 2024-12-27 16:28 似梦亦非梦 阅读(45) 评论(0) 推荐(0) 编辑
摘要:多线程编程是一种允许在同一程序中同时执行多个线程的技术,以提高程序的性能和响应性。多线程的实现原理涉及操作系统、编程语言和编译器等多个层面。以下是对多线程实现原理的详细解释: 多线程的基本概念 线程(Thread): 线程是程序执行的基本单元,是操作系统能够进行运算调度的最小单位。 一个进程可以包含 阅读全文
posted @ 2024-12-27 16:19 似梦亦非梦 阅读(106) 评论(0) 推荐(0) 编辑
摘要:在使用Redis作为缓存系统时,缓存穿透(Cache Penetration) 和 缓存雪崩(Cache Avalanche) 是两种常见的问题。它们会影响缓存系统的性能和稳定性。以下是这两种问题的详细解释及其解决方法。 缓存穿透(Cache Penetration) 缓存穿透是指查询一个在缓存和数 阅读全文
posted @ 2024-12-27 15:19 似梦亦非梦 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1 DDD分层架构 DDD 分层架构就是优化后的四层架构。 从上到下依次是:用户接口层、应用层、领域层和基础层。 1.1 DDD封层架构 用户接口层:负责向用户显示信息和解释用户指令。这里的用户可能是:用户、程序、自动化测试和批处理脚本等等。 应用层:很薄的一层,理论上不应该有业务规则或逻辑,主要面 阅读全文
posted @ 2024-12-25 16:53 似梦亦非梦 阅读(151) 评论(0) 推荐(0) 编辑
摘要:1 什么是DDD 领域驱动设计,即Domain Driven Design(DDD)。 DDD是一套完整而系统的设计理论与方法,使得你的设计思路能够更加清晰,设计过程更加规范。 DDD 善于处理与领域相关的拥有高复杂度业务的产品开发 总之,DDD是专门为解决复杂性而诞生一套完整的理论方法。 DDD落 阅读全文
posted @ 2024-12-25 15:43 似梦亦非梦 阅读(69) 评论(0) 推荐(0) 编辑
摘要:1.查找redis-cli所在目录 which redis-cli 2.切换到redis-cli目录 3.切换到usr/bin 目录 执行以下命令 redis-cli -h ip -p port 4. 验证redis登录密码 auth 'password' 5.获取redis数据 阅读全文
posted @ 2024-12-21 13:49 似梦亦非梦 阅读(409) 评论(0) 推荐(0) 编辑
摘要:可以参考这篇资料: https://blog.csdn.net/Bilise/article/details/105372667 阅读全文
posted @ 2024-12-20 23:14 似梦亦非梦 阅读(5) 评论(0) 推荐(0) 编辑
摘要:无法远程连接Redis的原因及解决方法 1.可能的原因 防火墙设置:防火墙可能会阻止远程连接Redis服务。 配置问题:可能是redis的配置文件中存在错误或者参数设置不当。 网络问题:可能是网络连接不稳定或者网络环境配置不正确。 2.解决方法 2.1 检查防火墙设置 linux系统可以使用以下命令 阅读全文
posted @ 2024-12-20 22:45 似梦亦非梦 阅读(397) 评论(0) 推荐(0) 编辑
摘要:前言 Redis版本7.0.4 服务器版本:Linux CentOS 8.0 64位 1.下载Redis 进入官网找到下载地址 https://redis.io/download 进入到Xshell控制台(默认当前是root根目录),输入wget 将上面复制的下载链接粘贴上,如下命令: wget h 阅读全文
posted @ 2024-12-20 01:03 似梦亦非梦 阅读(1069) 评论(0) 推荐(0) 编辑
摘要:安装必要的工具 sudo yum install -y wget curl 下载并导入 Microsoft GPG 密钥 sudo curl -s https://packages.microsoft.com/keys/microsoft.asc sudo rpm --import microsof 阅读全文
posted @ 2024-12-18 23:52 似梦亦非梦 阅读(97) 评论(0) 推荐(0) 编辑
摘要:现如今网上关于Java、前端、Android、Golang...等相关技术的学习资料、工作心得、面试指南一搜都是一大把,但是咱们C#/.NET的相关学习资料、工作心得、面试指南都是寥寥无几。我在微信技术群、知乎里面经常会看到这样的提问:有没有好的C#/.NET相关的学习书籍、视频教程、项目框架和常见 阅读全文
posted @ 2024-12-15 19:35 似梦亦非梦 阅读(245) 评论(0) 推荐(0) 编辑
摘要:题目 用两个线程,一个输出字母,一个输出数字,交替输出 1A2B3C4D...26Z 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class NumberLetterPrinter { 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目 多线程按顺序调用,A->B->C,AA 打印 5 次,BB 打印10 次,CC 打印 15 次,重复 10 次 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ABCPr 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目 通过 N 个线程顺序循环打印从 0 至 100 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ZeroEvenOdd { private int n = 100; pr 阅读全文
posted @ 2024-12-14 11:33 似梦亦非梦 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题目 两个线程交替打印 0~100 的奇偶数 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ZeroEvenOdd { private int n = 100; privat 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目 三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串 代码示例 public class ZeroEvenOdd { private int n; private AutoResetEvent aEvent = new AutoRe 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目: class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 构造函数 public void zero(printNumber) { ... } // 仅打印出 0 public void even(printNumber) { ... 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(17) 评论(0) 推荐(0) 编辑
摘要:程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。 思路: 1、构造出Cat、Mouse、Master三个类,并能使程序运行。 2、从Mouse和Master中提取抽象。 3、联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。 通过这个例子,可以看出,委托事件的应用是极其面向 阅读全文
posted @ 2024-12-14 11:32 似梦亦非梦 阅读(93) 评论(0) 推荐(0) 编辑
摘要:1.递归算法 1.1 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=( 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(38) 评论(0) 推荐(0) 编辑
摘要:前言 今天我们主要总结一下C#面试中常见递归算法。 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前言 哈希查找算法是一种高效的查找算法,通过将键值映射到哈希表中的位置来实现快速访问。在C#中,哈希查找通常通过哈希表(Hashtable)或字典(Dictionary)来实现。 实现原理 哈希函数:将键值转换成哈希值,该哈希值决定了键值在哈希表中的位置。 哈希表:一种数据结构,用于存储键值对。哈希 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(22) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树算法实现原理 二叉搜索树(Binary Search Tree,简称BST)是一种节点有序排列的二叉树数据结构。它具有以下性质: 每个节点最多有两个子节点。 对于每个节点,其左子树的所有节点值都小于该节点值,其右子树的所有节点值都大于该节点值。 实现基本步骤和代码示例 步骤 定义节点类:包 阅读全文
posted @ 2024-12-14 11:31 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 线性查找算法是一种简单的查找算法,用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始,逐个检查每个元素,直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n),其中n是数组中的元素数量。 实现原理 从列表的第一个元素开始,逐个检查每个元素。 如果当前元素等于目标元素 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:前言 二分查找算法是一种在有序数组中查找特定元素的搜索算法。 实现原理 二分查找的实现依赖于以下几个关键步骤: 计算查找范围的中间索引。 比较中间索引处的值与目标值。 根据比较结果调整查找范围(左半部分或右半部分)。 重复上述步骤直到找到目标值或查找范围为空。 代码实现 public class 二 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(18) 评论(0) 推荐(0) 编辑
摘要:前言 基数排序是一种非比较性排序算法,它通过将待排序的数据拆分成多个数字位进行排序。 实现原理 首先找出待排序数组中的最大值,并确定排序的位数。 从最低位(个位)开始,按照个位数的大小进行桶排序,将元素放入对应的桶中。 将各个桶中的元素按照存放顺序依次取出,组成新的数组。 接着按照十位数进行桶排序, 阅读全文
posted @ 2024-12-14 11:30 似梦亦非梦 阅读(10) 评论(0) 推荐(0) 编辑
摘要:前言 桶排序是一种线性时间复杂度的排序算法,它将待排序的数据分到有限数量的桶中,每个桶再进行单独排序,最后将所有桶中的数据按顺序依次取出,即可得到排序结果。 实现原理 首先根据待排序数据,确定需要的桶的数量。 遍历待排序数据,将每个数据放入对应的桶中。 对每个非空的桶进行排序,可以使用快速排序、插入 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 计数排序是一种非比较性的排序算法,适用于排序一定范围内的整数。它的基本思想是通过统计每个元素的出现次数,然后根据元素的大小依次输出排序结果。 实现原理 首先找出待排序数组中的最大值max和最小值min。 创建一个长度为max-min+1的数组count,用于统计每个元素出现的次数。 遍历待排序 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(11) 评论(0) 推荐(0) 编辑
摘要:前言 堆排序是一种高效的排序算法,基于二叉堆数据结构实现。它具有稳定性、时间复杂度为O(nlogn)和空间复杂度为O(1)的特点。 堆排序实现原理 构建最大堆:将待排序数组构建成一个最大堆,即满足父节点大于等于子节点的特性。 将堆顶元素与最后一个元素交换:将最大堆的堆顶元素与堆中的最后一个元素交换位 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:快速排序实现原理 快速排序(Quick Sort)是一种常用的排序算法,它基于分治的思想,通过将一个无序的序列分割成两个子序列,并递归地对子序列进行排序,最终完成整个序列的排序。 其基本思路如下: 选择数组中的一个元素作为基准(pivot)。 将数组中小于等于基准的元素放在基准的左边,将大于基准的元 阅读全文
posted @ 2024-12-14 11:29 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前言 归并排序是一种常见的排序算法,它采用分治法的思想,在排序过程中不断将待排序序列分割成更小的子序列,直到每个子序列中只剩下一个元素,然后将这些子序列两两合并排序,最终得到一个有序的序列。 归并排序实现原理 将待排序序列分割成两个子序列,直到每个子序列中只有一个元素。 将相邻的两个子序列合并,并按 阅读全文
posted @ 2024-12-14 11:28 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言 希尔排序简单的来说就是一种改进的插入排序算法,它通过将待排序的元素分成若干个子序列,然后对每个子序列进行插入排序,最终逐步缩小子序列的间隔,直到整个序列变得有序。希尔排序的主要思想是通过插入排序的优势,减小逆序对的距离,从而提高排序效率。 希尔排序实现原理 首先要确定一个增量序列(初始间隔), 阅读全文
posted @ 2024-12-14 11:28 似梦亦非梦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:插入排序实现原理 插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 具体实现步骤如下 首先咱们假设数组长度为n,从第二个元素开始,将当前元素存储在临时变量temp中。 从当前元素的前一个位置开始向前遍历,比较temp与每个已排序元素的值大小。 如果已 阅读全文
posted @ 2024-12-14 11:28 似梦亦非梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要:选择排序(Selection Sort)原理介绍 选择排序(Selection Sort)是一种简单的排序算法,其实现原理如下: 遍历待排序数组,从第一个元素开始。 假设当前遍历的元素为最小值,将其索引保存为最小值索引(minIndex)。 在剩余的未排序部分中,找到比当前最小值还要小的元素,并更新 阅读全文
posted @ 2024-12-14 11:27 似梦亦非梦 阅读(37) 评论(0) 推荐(0) 编辑
摘要:冒泡排序实现原理 冒泡排序是一种简单的排序算法,其原理如下: 从待排序的数组的第一个元素开始,依次比较相邻的两个元素。 如果前面的元素大于后面的元素(升序排序),则交换这两个元素的位置,使较大的元素“冒泡”到右侧。 继续比较下一对相邻元素,重复步骤2,直到遍历到数组的倒数第二个元素。此时,最大的元素 阅读全文
posted @ 2024-12-14 11:27 似梦亦非梦 阅读(105) 评论(0) 推荐(0) 编辑
摘要:public class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); string original = "abc123def456"; string result = GetAlph 阅读全文
posted @ 2024-12-14 11:26 似梦亦非梦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目 编写一个方法,求两个字符串的最长公共子串(Longest Common Substring)的长度。 输入: • 两个字符串 str1 和 str2。 输出: • 它们的最长公共子串的长度(即最大连续相同子串的长度)。 测试用例 输入字符串1 输入字符串2 期望输出 说明 "abcdef" " 阅读全文
posted @ 2024-12-12 12:58 似梦亦非梦 阅读(36) 评论(0) 推荐(1) 编辑
摘要:概述 对于C#中的Dictionary类相信大家都不陌生,这是一个Collection(集合)类型,可以通过Key/Value(键值对的形式来存放数据;该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存,提升整体效率。 那么是什么样的设计能使得Diction 阅读全文
posted @ 2024-12-11 20:16 似梦亦非梦 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1.数据结构概述 数据结构是计算机存储、组织数据的方式。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能; 常用的数据结构有:数组(Array)、栈(Stack)、队列(Queue)、链表(Linked List)、树(Tree)、图(Grap 阅读全文
posted @ 2024-12-11 19:37 似梦亦非梦 阅读(259) 评论(0) 推荐(0) 编辑
摘要:1.什么是网络通信 网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。 1.1 通信:信息的传递过程 1.2 数据通信网 阅读全文
posted @ 2024-12-10 20:03 似梦亦非梦 阅读(98) 评论(0) 推荐(0) 编辑
摘要:1.五种常见数据类型 Redis中的数据类型指的是 value存储的数据类型,key都是以String类型存储的,value根据场景需要,可以以String、List等类型进行存储。 各数据类型介绍: Redis数据类型对应的底层数据结构 2.String 类型的应用场景 2.1 常用命令 存放键值 阅读全文
posted @ 2024-12-10 13:12 似梦亦非梦 阅读(352) 评论(0) 推荐(0) 编辑
摘要:当你面向业务开发时,做的应用架构设计就算是已经在做领域驱动设计了。 1.什么是领域驱动设计? 领域驱动设计最开始提出来的目的是为了简化业务人员与开发团队之间的沟通,以保证开发出来的软件产品不仅能够很好地解决业务领域问题并满足客户的需求,而且还能够简化或解决传统软件开发过程中遇到的各种问题(比如需求变 阅读全文
posted @ 2024-12-10 00:01 似梦亦非梦 阅读(116) 评论(2) 推荐(0) 编辑
摘要:1.与关系型数据库事务的区别 Redis事务是指将多条命令加入队列,一次批量执行多条命令,每条命令会按顺序执行,事务执行过程中不会被其他客户端发来的命令所打断。也就是说,Redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。 Redis事务和关系型数据库的事务不太一样,它不保证原子性 阅读全文
posted @ 2024-12-09 23:32 似梦亦非梦 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1.Redis为什么这么快? 完全基于内存,数据存在内存中,绝大部分请求是纯粹的内存操作,非常快速,跟传统的磁盘文件数据存储相比,避免了通过磁盘IO读取到内存这部分的开销。 数据结构简单,对数据操作也简单。【Redis中的数据结构】是专门进行设计的,每种数据结构都有一种或多种数据结构来支持。Redi 阅读全文
posted @ 2024-12-09 22:00 似梦亦非梦 阅读(64) 评论(0) 推荐(1) 编辑
摘要:前言 Redis作为企业级应用中广泛使用的高性能键值存储数据库,其性能优化是一个复杂且多面的话题。 Redis的性能优化涉及到硬件选择、配置调整、客户端优化、持久化策略等多个层面。 1.硬件优化 解决方案:选择更快的CPU、更多的内存、更快的磁盘(SSD推荐)和足够的网络带宽。 2.合理的实例部署 阅读全文
posted @ 2024-12-09 19:29 似梦亦非梦 阅读(89) 评论(0) 推荐(0) 编辑
摘要:使用复杂度高的命令 Redis提供了慢日志命令的统计功能 首先设置Redis的慢日志阈值,只有超过阈值的命令才会被记录,这里的单位是微妙,例如设置慢日志的阈值为5毫秒,同时设置只保留最近1000条慢日志记录: # 命令执行超过5毫秒记录慢日志 CONFIG SET slowlog-log-slowe 阅读全文
posted @ 2024-12-09 00:01 似梦亦非梦 阅读(87) 评论(0) 推荐(0) 编辑
摘要:前言 Redis的高可用机制有持久化、复制、哨兵和集群。其主要的作用和解决的问题分别是: 持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可 阅读全文
posted @ 2024-12-08 22:25 似梦亦非梦 阅读(703) 评论(0) 推荐(1) 编辑
摘要:前言 Redis单实例的架构,从最开始的一主N从,到读写分离,再到Sentinel哨兵机制,单实例的Redis缓存足以应对大多数的使用场景,也能实现主从故障迁移。 但是,在某些场景下,单实例存Redis缓存会存在的几个问题: 写并发:Redis单实例读写分离可以解决读操作的负载均衡,但对于写操作,仍 阅读全文
posted @ 2024-12-08 21:17 似梦亦非梦 阅读(146) 评论(0) 推荐(0) 编辑
摘要:前言 在 SQL Server 中,当数据量增大时,数据库的性能可能会受到影响,导致查询速度变慢、响应时间变长等问题。为了应对大量数据,以下是一些常用的优化策略和案例详解 1.索引优化 创建索引:索引可以显著提高查询速度,特别是在使用 WHERE、JOIN 和 ORDER BY 子句时。为常用的查询 阅读全文
posted @ 2024-12-08 14:16 似梦亦非梦 阅读(591) 评论(0) 推荐(0) 编辑
摘要:前言 本地缓存带来的挑战有哪些 分布式缓存相比于本地缓存,在实现层面需要关注的点有哪些不同。梳理如下: 从上述几个维度的对比可以发现,同样是缓存,但集中式缓存所承担的使命是完全不一样的,业务对集中式缓存的存储容量、可靠性、承压性等方面的诉求也是天壤之别,不可等同视之。以Redis为例: 如何打破re 阅读全文
posted @ 2024-12-08 10:49 似梦亦非梦 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2024-12-07 19:02 似梦亦非梦 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1.什么是IdentityServer4? 它是一个中间件服务框架,集成OIDC与OAuth2.0, 方便搭建任意多个项目。 IdentityServer4的组成 Identity身份 Server服务器 4版本 源代码:https://github.com/IdentityServer 【1 ~ 阅读全文
posted @ 2024-12-07 18:34 似梦亦非梦 阅读(102) 评论(0) 推荐(0) 编辑
摘要:1.跨域的相关概念 1.1 什么是跨域 同源策略是由 Netscape 提出的著名安全策略,是浏览器最核心、基本的安全功能,它限制了一个源(origin)中加载文本或者脚本与来自其他源(origin)中资源的交互方式,所谓的同源就是指协议、域名、端口相同。 当浏览器执行一个脚本时会检查是否同源,只有 阅读全文
posted @ 2024-12-07 17:31 似梦亦非梦 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1.Dto知多少 2.多种模型概论 3.如何使用Dto 4.其他知识扩展 阅读全文
posted @ 2024-12-07 12:05 似梦亦非梦 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1.什么是AOP 2.多种思想应用的区别 3.AOP有哪些优势 4.AOP的使用 阅读全文
posted @ 2024-12-07 12:05 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1.相关基本概念 1.1 类和对象 类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。 new 实例化的过程 声明引用; 使用new关键字创建类的对象并对其初始化;(分配内存空间) 将引用指向类的对象。 解除依赖的思想是如何产生的? (1)原始社会里,没有 阅读全文
posted @ 2024-12-07 12:04 似梦亦非梦 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1.API保护 1.1 为什么要保护API 防泄漏 防攻击 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口) 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改) 3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放) 阅读全文
posted @ 2024-12-07 12:04 似梦亦非梦 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1.什么是.net core net core 是一个跨平台的高性能开源框架用具生成基于云连接的Internet的新的应用程序,可以建造web应用程序和服务, lot应用和移动后端,可以在Windows,macOS,和Linux上进行开发和部署, 在asp.net4.x重新设计更改了体系结构形成了更 阅读全文
posted @ 2024-12-06 21:30 似梦亦非梦 阅读(161) 评论(0) 推荐(0) 编辑
摘要:Linux命令放在哪个目录取决于命令的类型和用途。在Linux系统中,命令通常被放置在特定的目录中,以便用户可以通过简单地键入命令的名称来执行它们。以下是Linux中常见的命令目录: 1./bin目录: 这个目录包含了系统启动时所需的基本命令,例如cat、ls、cp和mkdir等。这些命令对于系统的 阅读全文
posted @ 2024-12-06 13:20 似梦亦非梦 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1.什么是Kubernetes Kubernetes是⼀个开源的容器编排引擎,可以⽤来管理容器化的应⽤,包括容器的⾃动化的部署、扩容、缩容、升级、回滚等等,它是Google在2014年开源的⼀个项⽬,它的前身是Google内部的Borg系统。 2.为什么要使用Kubernetes 在Kubernet 阅读全文
posted @ 2024-12-06 12:02 似梦亦非梦 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1.基本概念 2.包管理器安装 3.基本命令 4.创建/插入 5.查找 6.更新 7.删除 8.聚合 9.查找 10.过滤条件 阅读全文
posted @ 2024-12-06 11:43 似梦亦非梦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1.分类 2.数据库相关 3.MySql服务及配置 4.终端操作 5.SQL基础 6.修改密码及允许远程登录 7.表相关 8.SQL基础 9.MySQL-Shell 10.Select子句 11.WHERE 12. AND OR NOT 13.DISTINCT 14.IN 15.BETWEEN 16 阅读全文
posted @ 2024-12-06 11:23 似梦亦非梦 阅读(3) 评论(0) 推荐(0) 编辑
摘要:1.初始化设置 2.创建仓库 3.四个区域 4.文件状态 5.特殊文件 6.添加和提交 7.分支 8.撤销和恢复 9.查看状态或差异 10.Stash 11.远程仓库 12.GitFlow 阅读全文
posted @ 2024-12-05 13:26 似梦亦非梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:abp是一个开源且文档友好的应用程序框架,提供了一个基于领域驱动设计(DDD)的体系结构模型,可以支持.net core和.net framework两种技术流派。 1.abp框架特点 1.1 依赖注入 这个部分使用 Castle windsor (依赖注入容器)来实现依赖注入,这个也是我们经常使用 阅读全文
posted @ 2024-12-05 10:42 似梦亦非梦 阅读(514) 评论(0) 推荐(0) 编辑
摘要:1.Nginx简介 Nginx是⽬前最流⾏的Web服务器,最开始是由⼀个叫做igor的俄罗斯的程序员开发的,2019年3⽉11⽇被美国的F5公司以6.7亿美元的价格收购,现在Nginx是F5公司旗下的⼀款产品了。 2.Nginx的版本 Nginx开源版本主要分为两种,⼀种是稳定版,⼀种是主线版。 主 阅读全文
posted @ 2024-12-04 20:45 似梦亦非梦 阅读(519) 评论(0) 推荐(0) 编辑
摘要:1.基本操作 2.字符串(Strings) 3.列表(Lists) 4.哈希(Hashes) 5.位图(Bitmaps) 6.位域(Bitfields) 7.集合(Sets) 8.有序集合(SortedSets) 9.流(Streams) 10。地理空间(Geospatial) 11.HyperLo 阅读全文
posted @ 2024-12-04 19:36 似梦亦非梦 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1 镜像管理 2 容器管理 3 容器运行 4 网络管理 5 插件管理 6 数据卷管理 7 日常操作 8 常用dockerfile指令 阅读全文
posted @ 2024-12-03 22:49 似梦亦非梦 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1.docker介绍 Docker是一个用于构建,运行,传送 应用程序的平台。 以下所有环境打包成一个集装环境,放入小金鱼docker中。 1.1 为什么要用docker? 第一点:安装依赖过多 如果不用docker,需要部署一个带有数据库的,前后端服务的网站应用时,就要执行step的步骤安装环境, 阅读全文
posted @ 2024-12-03 22:24 似梦亦非梦 阅读(106) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示