2025-09-25
C#
00

摘要

C#中的IDGen是一个非常实用的C#实现的Twitter Snowflake算法的ID生成器,它能够为C#应用程序提供高效、全局唯一的ID生成功能,特别是在高并发场景下,这个功能尤为重要。

Twitter Snowflake算法是一种非常棒的方法,用于生成全世界独一无二的ID。它基于当前时间和机器时钟的微秒级别差异,可以保证在1亿年内生成的ID都是独一无二的。这个算法非常适合在高并发的场景下使用,因为它能够避免出现ID冲突,从而提高系统的性能和稳定性。

在C#中,IDGen就是一个基于Twitter Snowflake算法实现的ID生成器。它的主要作用是为C#应用程序生成全局唯一的ID,可以通过简单的调用来实现。与其他ID生成器相比,IDGen具有以下优点:

  1. 高效:IDGen能够在高并发场景下生成高效、全局唯一的ID,可以避免ID冲突,提高系统的性能和稳定性。
  2. 全局唯一:IDGen生成的ID是全局唯一的,可以确保在任何时候都不会发生ID冲突。
  3. 支持多种数据类型:IDGen支持多种数据类型的ID生成,包括整数、字符串等,可以根据应用程序的需要进行灵活选择。
  4. 易于使用:IDGen非常易于使用,只需要简单的调用即可实现高效、全局唯一的ID生成。

正文

nuget 安装 IDGen库

image.png

2025-09-25
C#
00

摘要

在C#中,TaskScheduler是一种非常有用的功能,它允许您在指定的时间或间隔内执行任务。TaskScheduler是一个抽象类,它提供了一个通用的方法来计划和执行任务。您可以使用TaskScheduler来调度多个任务,并且在多线程环境中控制它们的执行。

正文

写一个继承TaskScheduler的类

C#
public class MyScheduler : TaskScheduler { protected override void QueueTask(Task task) { // 将任务排队到线程池中 ThreadPool.QueueUserWorkItem(_ => TryExecuteTask(task)); } protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued) { // 如果当前线程是调度器的线程,则在当前线程内执行任务 if (taskWasPreviouslyQueued && Thread.CurrentThread.IsThreadPoolThread) return TryExecuteTask(task); return false; } protected override IEnumerable<Task> GetScheduledTasks() { // 此方法用于调度器的内部追踪,不要求实现 return Enumerable.Empty<Task>(); } }
2025-09-25
C#
00

摘要

Remote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

正文

1.Redis 服务

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

Redis 官网:https://redis.io/

源码地址:https://github.com/redis/redis

Redis 在线测试:http://try.redis.io/

Redis 命令参考:http://doc.redisfans.com/

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

2025-09-25
C#
00

摘要

缓存是一种非常常见的性能优化技术,在开发过程中经常会用到。.NET提供了内置的内存缓存类 MemoryCache,它可以很方便地存储数据并在后续的请求中快速读取,从而提高应用程序的响应速度。

正文

通过使用 Microsoft.Extensions.Caching.Memory,我们可以在 .NET Core 中轻松实现内存缓存功能,从而提高应用程序的性能和响应速度。在实际应用中,你可以根据具体需求来设置缓存的有效期和其他选项。

nuget 安装依赖 Microsoft.Extensions.Caching.Memory

image.png

一个简单例子

2025-09-25
C#
00

摘要

在.NET框架中,对象映射(Object Mapping)是一个重要的概念。它允许将不同的数据存储格式(如XML、JSON、文本文件等)映射到对象,并在不同的应用程序之间共享这些数据。而Mapster则是一个快速、小巧、功能强大的对象映射框架,它为.NET开发者提供了方便和高效的数据映射方式。

除了实体类与数据格式之间的映射,Mapster框架还支持从不同的数据源读取数据,并将其映射到实体类中。这个过程包括从数据库中读取数据、从文件中读取数据、从网络上读取数据等等。在这个过程中,Mapster提供了丰富的数据类型支持,包括自定义类型和嵌套类型。

Mapster框架还提供了许多方便的工具,如查询语句的映射、映射错误的处理等等。在使用Mapster框架时,开发者只需要编写简单的代码,就可以轻松地完成数据映射的工作。

正文

nuget 安装Mapster 库