自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(255)
  • 资源 (2)
  • 收藏
  • 关注

原创 redis数据库迁移

在 Redis 中进行数据库迁移(如从本地服务器迁移到云环境,或从旧集群迁移到新集群)需要根据数据量、停机时间要求和网络环境选择合适的方案。redis-cli -h [目标IP] -p [目标端口] REPLICAOF [源IP] [源端口]redis-benchmark -h [目标IP] -p [目标端口] -c 50 -n 100000。redis-cli -h [目标IP] -p [目标端口] DBSIZE。redis-cli -h [源IP] -p [源端口] SAVE。

2025-04-03 13:53:36 558

原创 c# 如何删除redis存储中增加的外键

在 Redis 中虽然没有传统数据库的「外键约束」,但开发者通常会手动维护关联数据(如索引、反向引用等)。// 删除邮箱集合中的记录。// 假设外键键名遵循模式 "user:fk:{userId}:*"/// 清理所有关联外键(适用于复杂场景,如动态生成的索引)/// 删除用户及其外键索引(事务保证原子性)当删除用户时,需同步删除所有关联的外键索引。// 执行事务(原子性操作)// 2. 删除外键索引。// 提取外键关联信息。// 1. 删除主数据。// 分页扫描匹配的键。// 获取用户所有订单ID。

2025-04-03 13:44:59 821

原创 c# 如何利用redis存储对象,并实现快速查询

/ 维护一个有序集合:Key = "users_by_age", Member = 用户ID, Score = 年龄。// 维护一个哈希表:Key = "name_to_id", Field = 用户名, Value = 用户ID。通过合理设计键结构和索引,结合 Redis 的数据类型,可以在 C# 中高效存储和查询对象。在 C# 中使用 Redis 存储对象并实现快速查询,可以通过以下步骤实现。,结合 Redis 的哈希(Hash)和有序集合(Sorted Set)优化查询。// 根据ID查询用户。

2025-04-02 16:47:40 710

原创 c# 获取redis中所有的value

通过上述代码,可安全高效地获取 Redis 中所有键的值,并根据需要扩展对不同数据类型的支持。// 使用 SCAN 分页遍历键(避免 KEYS * 的性能问题)// 仅获取字符串类型的值(按需扩展其他类型)/// 安全获取所有键的值(分页扫描模式,避免阻塞 Redis)/// 高性能批量获取字符串值(Pipeline 优化):全量扫描操作(即使分页)仍可能影响性能,建议在低峰期执行。分页遍历键,减少对 Redis 的阻塞风险。// 方法2:批量获取指定键。// 方法1:安全分页扫描。

2025-03-31 11:19:05 837

原创 利用c#书写调用MVS书写的图片处理文件.sol

如需处理更复杂的图像处理逻辑(如特征提取),建议采用链下处理+链上验证的模式,可结合Oracles实现链下计算结果的验证。C# 客户端程序 → 计算本地哈希 → IPFS网络(存储图片) → 区块链(存储哈希/IPFS地址):实际图片文件应存储在IPFS/Arweave等去中心化存储中,合约仅存储验证哈希。// 注册图片元数据(需配合链下存储如IPFS)// 上传图片到IPFS并注册到合约。// 生成图片哈希(链下处理)// 验证图片存在性。// 获取图片元数据。// 验证图片存在性。

2025-03-28 11:27:08 970

原创 在C#中通过TCP通信调用.sol智能合约的完整流程

要通过TCP通信调用Solidity(.sol)智能合约,我们需要建立一个完整的流程,包括TCP服务器/客户端通信和以太坊智能合约交互。

2025-03-28 11:24:57 616

原创 运动控制卡和plc区别

运动控制卡和PLC各有优势,选择时需根据具体应用需求决定。如果需要高精度、复杂运动控制,运动控制卡是更好的选择;而如果侧重于逻辑控制和稳定性,PLC则更为合适。两者在自动化系统中可以相辅相成,共同实现复杂的控制任务。‌。

2025-03-25 16:05:07 328

原创 .NET 10 新的 JsonIgnoreCondition

我们的 Api Response 里有一个字段非常的大,不需要在 response 里包含,但是从 json 里反序列化时时需要地所以不能简单地直接忽略,在使用 Newtonsoft.Json 时使用。还是有值的,这一点感觉有点问题,我们设置了反序列化应该忽略,不过它是在构造器上的,不是通过属性 setter 设置的,是不是也是可以接受的呢?的,在序列化的时候被忽略了,只有 Name 和 Description 输出了,在之后的反序列化中,因为。约定方法在序列化的时候忽略,如果有一个。

2025-03-20 08:49:14 770

原创 c#获取使用串口信息

获取串口号有多种方法,下面是几种不同的实现方法:using System.IO.Ports;

2025-03-18 14:44:51 360

原创 c# 利用mv-cs200-10gc工业相机,识别液注的高度

Console.WriteLine("登录失败,错误码:" + HikDevice.NET_DVR_GetLastError());if (Math.Abs(line.P1.Y - line.P2.Y) < 2) // 近似水平线。Console.WriteLine($"液柱高度:{height} mm");Console.WriteLine($"液面Y坐标:{liquidSurface.P1.Y}");Console.WriteLine($"液柱高度:{realHeight} mm");

2025-03-14 18:15:53 1063

原创 c#使用redis如何实现数据的分库存储

通过分片算法(如一致性哈希)将数据分布到多个 Redis 实例(物理分库),适合大规模数据和高并发场景。通过上述方案,可灵活实现 Redis 数据分库存储,根据业务需求选择逻辑隔离或物理分片。:跨分片的事务无法保证原子性(Redis Cluster 仅支持同一分片的事务)。"server1:6379", // 分片 0。"server2:6379", // 分片 1。"server3:6379" // 分片 2。// 连接字符串指定数据库索引(示例:db=2)// 根据 Key 选择分片。

2025-03-14 12:06:40 1257

原创 如何在c# 项目中使用redis

Console.WriteLine($"Redis 错误: {ex.Message}");Console.WriteLine($"连接失败: {args.Exception}");ConnectTimeout = 5000, // 连接超时时间(毫秒)Console.WriteLine($"错误消息: {args.Message}");Password = "your_password", // 认证密码。Console.WriteLine($"收到消息: {message}");

2025-03-11 18:27:54 1086

原创 c#如何直接获取json中的某个值

""hobbies"": [""读书"", ""编程""]""hobbies"": [""读书"", ""编程""]""street"": ""中关村""""street"": ""中关村""""city"": ""北京"",""city"": ""北京"",

2025-03-11 17:06:47 240

原创 c#中使用时间戳转换器

在C#中,时间戳转换器通常用于将时间戳(通常是一个表示自某一特定时间点(如1970年1月1日UTC)以来的毫秒数的长整型值)转换为DateTime对象,或者将DateTime对象转换回时间戳。

2025-03-10 11:40:40 232

原创 c# 使用Md5加密字符串

通过上述代码,可快速实现字符串的 MD5 哈希计算,适用于非安全敏感场景(如数据校验、唯一标识生成)。// "x2" 表示两位小写十六进制。// "X2" 表示两位大写十六进制。// 将输入字符串转为字节数组(UTF-8编码)// 注意:需在程序退出时手动调用 _md5.Dispose()// 将哈希字节数组转为十六进制字符串。/// 计算字符串的 MD5 哈希值(32位小写)

2025-03-07 18:25:40 942

原创 c#实现Modbus TCP/IP与RS 485数据交换的实例

/ 地址(1) + 功能码(1) + 字节数(1) + 数据(n) + CRC(2)throw new NotSupportedException($"不支持的功能码: 0x{functionCode:X2}");// 地址(1) + 功能码(1) + 地址(2) + 值(2) + CRC(2)Console.WriteLine($"Modbus TCP网关已启动,监听端口:{TCP_PORT}");

2025-03-06 15:41:23 795

原创 Modbus TCP/IP 与 RS-485 接口的兼容性

---[Modbus TCP/RTU 网关]---[RS-485总线]---[设备1][设备2][设备3]不存在,因为两者分属不同的网络层次(TCP/IP 基于以太网,RS-485 是物理层接口),但通过。:通过硬件网关将 Modbus TCP 报文与 Modbus RTU(RS-485)帧互相转换。:将老式RS-485传感器(Modbus RTU)接入云平台(Modbus TCP)。每个 RS-485 从站地址(1-247)对应 Modbus TCP 的。|---[Modbus TCP设备]

2025-03-06 15:11:39 889

原创 同步串行接口

同步串行接口在C#中的实现需结合硬件特性(GPIO、SPI控制器、专用适配器)和协议解析逻辑。

2025-03-05 17:00:34 828

原创 c#实现SSI串行接口通讯

/ 时钟周期微秒数(决定频率,示例:100kHz)Console.WriteLine($"尝试 {retry + 1} 失败: {ex.Message}");// 低4位为CRC。[Start Bit (0)] + [20位数据] + [4位CRC] + [Stop Bit (1)]Console.WriteLine($"位置: {pos}, CRC有效: {valid}");// 示例:4位CRC,多项式x^4 + x + 1(0x3)if (result == 0) // 假设返回0表示成功。

2025-03-05 16:01:21 1309

原创 485 多路信号采集,校验干扰问题

若仅单路CRC失败:重点检查该路硬件(线缆、接口、电源)。多路随机失败:优化总线拓扑和抗干扰设计。

2025-03-01 18:21:04 591

原创 c#实现modbus rtu定时采集数据

Console.WriteLine($"寄存器{40001 + i/2}:{value}");Console.WriteLine($"已启动数据采集,端口:{PortName}");Console.WriteLine($"[{timestamp}] 采集结果:");Console.WriteLine($"采集失败:{ex.Message}");// 计算传输时间:(bits * 1000) / baudRate + 1ms容差。Console.WriteLine("按任意键停止采集...");

2025-03-01 16:08:54 1774

原创 c#实现485协议

/ 启用硬件流控制(RTS)request[4] = (byte)(numRegisters >> 8);:通过控制RTS(Request to Send)或DTR引脚切换发送/接收模式。// 接收响应(响应长度 = 5 + 2 * numRegisters)

2025-02-28 23:16:19 806

原创 优化 EF Core 和 LINQ 以实现高性能应用程序

实体框架核心(Entity Framework Core,简称 EF Core)是一款强大的对象关系映射(ORM)工具,它弥合了面向对象编程与关系型数据库之间的差距,而 LINQ 在.NET 中提供了强大的查询语法。二者结合起来简化了与数据库的交互操作,但一些不经意的使用方式可能会导致性能瓶颈以及可扩展性问题。本文将深入探讨针对 EF Core 和 LINQ 的有效优化技巧,展示好与不好的代码示例,讨论相关优势,并着重介绍那些有助于提升性能和可扩展性的特性。

2025-02-28 23:12:03 349

原创 如何在系统之间实现通信?

在多台系统之间实现通信,需要根据具体场景(如实时性、数据量、安全性、网络环境)选择合适的通信协议和技术方案。以下是常见的通信方式及其实现方法,涵盖局域网、互联网、跨平台等场景: 适用场景:跨平台、请求-响应模式(如Web服务、移动端与服务器通信)。实现方法:csharp复制// C# 客户端调用REST API(使用 HttpClient)using System;using System.Net.Http;using System.Threading.Tasks;class Program{

2025-02-26 17:42:41 733

原创 c#序列化和反序列化(一)

序列化是获取内存中的对象或对象图 (一组相互引用的对象) 并将其扁平化为可以存储或传输的字节、XML、JSON或类似表示的流的行为。【方式二】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;【方式三】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;//反序列化读取数据。【方式四】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;【方式一】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;

2025-02-08 13:47:17 173

原创 使用 C# Attribute 实现 AOP 功能

首先,定义一个继承自Attribute的类,用于标记需要应用AOP功能的方法。这个Attribute可以被应用于任何方法上,用于指示该方法需要记录执行时间。创建一个需要应用AOP的业务类,并在需要记录执行时间的方法上标记[Timing]Console.WriteLine("正在执行业务逻辑...");// 模拟耗时操作Console.WriteLine("没有 TimingAttribute 的方法");在这个业务类中,DoWork方法被标记为需要记录执行时间。

2025-01-16 14:18:16 347

原创 c#函数式编程

纯函数 纯函数是可预测的:它们只依赖于输入,不会改变系统中的任何东西。相反,它们为每个更改创建新的实例。每个验证规则都是一个简单的函数,我们可以将它们组合起来。函数式编程模式常常给人一种学术性和抽象的感觉,其实隐藏着一些能让代码更安全、更易维护的实用模式。在实践中应用单子的一个流行例子是Result模式,它提供了一种清晰的方式来链接可能失败的操作。高阶函数的常见例子是LINQ中的Where和Select,它们接收用于转换数据的函数。纯函数是线程安全的,易于测试,并且易于理解,因为所有依赖都是显式的。

2025-01-16 11:01:29 481

原创 二叉搜索树算法实现原理

二叉搜索树的各项操作的时间复杂度都是对数阶,具有稳定且高效的性能。只有在高频添加、低频查找删除数据的场景下,数组比二叉搜索树的效率更高。二叉搜索树(Binary Search Tree,简称BST)是一种节点有序排列的二叉树数据结构。对于每个节点,其左子树的所有节点值都小于该节点值,其右子树的所有节点值都大于该节点值。用作系统中的多级索引,实现高效的查找、插入、删除操作。删除节点:从树中删除特定值的节点,并维护树的结构。定义节点类:包含节点值、左子节点和右子节点。搜索节点:根据节点值在树中查找特定值。

2025-01-15 14:39:00 46

原创 c#13新特性

我想这个特性是很大的一个改变,或许可以改进C#代码的组织方式,有望提高代码的可读性、可维护性和表现力。通过允许开发人员在不修改原始代码的情况下向现有类添加功能,它可以促进代码重用并减少修改原始类的需要。另外据了解,这个特性以及相关特性,例如扩展接口等等,并不会在C#13(.NET9)中完整的放出来,而是会在后续版本中逐渐解锁。

2025-01-08 09:17:10 517

原创 算法:二分查找

二分查找算法是一种在中查找特定元素的搜索算法。

2025-01-07 18:02:59 326

原创 算法:线性查找

线性查找算法简单易懂,适用于小规模数据集或无序数据集。其主要优点是实现简单,不需要对数据进行排序。然而,由于其时间复杂度为O(n),对于大规模数据集,效率较低。对于大规模数据集或需要频繁查找的场景,可以考虑使用更高效的查找算法,如二分查找(适用于有序数据集)或哈希查找。

2025-01-07 10:15:58 134

原创 C#编程中dynamic类型

dynamicdynamic类型为C#提供了一种灵活的方式来处理类型不确定的对象,特别是在与动态语言交互、处理动态数据结构时非常有用。然而,使用dynamic类型时也需要注意其可能带来的性能开销和类型安全问题。合理使用dynamic类型,可以在保持代码灵活性的同时,避免潜在的运行时错误。

2025-01-06 16:17:58 214

原创 c#中集中常见的集合去重方式

// 使用自定义的比较器和循环遍历if (!/// 自定义的比较器。

2025-01-03 08:53:18 240

原创 接口和抽象类的对比

接口中的所有成员默认都是公共的,并且是抽象的。可以包含抽象方法(没有实现的方法),也可以包含具体实现的方法(有实现的方法)。总的来说,抽象类更适合用于提供部分实现和共享状态,而接口更适合用于定义类之间的合同,即明确定义类应该具备哪些行为。当一个类继承抽象类时,它必须实现抽象类中所有的抽象成员,除非该类也被声明为抽象类。当一个类实现接口时,它必须实现接口中所有的成员,否则该类也必须被声明为抽象类。一个类只能直接继承一个抽象类,但可以同时实现多个接口。抽象类可以包含字段和具体实现,因此可以包含状态。

2024-12-31 14:26:12 58

原创 年底的一些感悟

还好我对接的时候,找了另一个上位机同事一块去了,要不我掉进黄河也洗不清,以至于招我来的那个师傅(搞下位机的)也处于尴尬的境地,董事会当时要告他的,奈何人家和另一位董事会的领导有关系,后来说是他刚生二胎,就放过他了。可能动了那个领导的蛋糕,我的上级将我的发现在公司高层会议上说出后,我就成了公司的靶子,当年尽管工作表现出众,个人优秀没有我,还是被补偿请出公司。后来想有所改变,报班学习软件,刚好那时候是华为入住西安的头几年,大量招人,自己也在这波软件大发展的行业中,出入软件行业,拿到了入行的资格证书。

2024-12-31 09:50:19 285

原创 DotnetSpider实现网络爬虫

通过使用DotnetSpider框架或HtmlAgilityPack库,.NET开发者可以快速实现网页数据的抓取。这些工具不仅提高了开发效率,而且提供了强大的功能来处理复杂的网页数据抓取需求。在进行网页数据抓取时,请确保遵守相关网站的爬虫政策和法律法规,合理合法地使用爬虫技术。DotnetSpider是一个开源的、轻量、灵活、高性能、跨平台的分布式网络爬虫框架,适用于.NET平台。创建一个数据模型来表示你想要抓取的数据。首先,你需要在你的.NET项目中安装DotnetSpider NuGet包。

2024-12-30 13:45:49 1041

原创 C#中通过Mapster实现轻量级高效对象映射器

当谈到 C# 中的对象关系映射时,许多人会立即想到 AutoMapper。事实上,AutoMapper 是一个出色的对象映射库。但是,今天我想分享另一个我个人认为更轻量级、更有用的库:Mapster。虽然它的受欢迎程度可能不如 AutoMapper 高,但它的力量是不可否认的。

2024-12-30 11:53:01 390 1

原创 c#中using语句

using语句是 C# 中一个非常有用的语法结构,它简化了资源管理,确保资源在使用后能够被自动释放。通过合理使用using语句,可以提高代码的可读性和可靠性,避免资源泄露和内存泄漏等问题。掌握using语句的用法和原理,将有助于开发者编写更高效、更安全的代码。

2024-12-26 15:26:47 295

原创 串口通讯Serial Communication

串口通信(Serial Communication)是通过串行接口在设备间传输数据的方式。数据在串口通信中以位为单位,通过单一通道逐位顺序传输。这种方式相较于并行通信虽然速度较慢,但它所需的连接线路少,更适合于长距离通信和简化设备接口。C# 提供了强大的串口通信支持,通过SerialPort类和库,开发者可以方便地实现串口设备的控制和数据交互。在实际应用中,需要根据具体的需求和场景,合理配置串口参数、处理数据通信和错误,并注意多线程通信的线程安全。

2024-12-24 12:01:31 484

原创 C# 异步编程与多线程简析

C# 中的ThreadThreadPool和Task各有优缺点,适用于不同的场景。在实际开发中,应根据具体需求和场景选择合适的机制。掌握这三种机制的使用,能够帮助我们更好地实现异步编程和多线程,提高应用程序的性能和响应性。

2024-12-24 10:32:14 282

氧化炉进出口绕棍巡检说明书

氧化炉进出口绕棍巡检

2024-10-19

求职c#软件开发工程师职位

求职c#软件开发工程师职位

2024-10-17

Fastreport标签设计器

一款解压即用的标签设计器,可设置常用标签的模式

2024-07-12

SMT设备说明书-涵盖使用保养等功能

SMT设备说明书-涵盖使用保养等功能

2024-07-02

web前端开发技术讲解

主要讲解web前端开发技术,从前端角标、样式、javasript详细讲解

2024-06-28

win7系统设置共享文件步骤

win7系统设置共享文件步骤

2024-06-13

eas映射数据结构不可获取的两个dll库

本包包含两个eas映射数据结构不可或缺的dll,分别为EAS.Data.dll和EAS.MicroKernel.dll

2024-06-11

基于可编程控制器最新资料

基于可编程控制器最新资料

2024-06-11

图片识别(只限猫和狗)

利用机器学习算法,构建模型,识别动物

2024-06-04

excel宏命令调试安装包

WPS系统宏命令调试安装包

2024-05-28

基于WPF自主开发插件

XXXXXXXXXXXXXXX

2024-04-11

一款开源.NET WPF界面库介绍

一款开源.NET WPF界面库介绍

2024-02-27

设备信息话采集的基本要求

设备信息化采集的基本要求: 1.什么是设备信息护化 2.实现设备信息化的集中方式 3.不同设备实现信息化的方式

2024-02-19

西门子840D系列机床可测试参数整理

西门子840D系列机床可测试参数整理

2024-01-16

基恩士SR Web端软件使用步骤

基恩士SR Web端软件使用步骤

2024-01-16

基恩士SR SDK 使用步骤

基于基恩士SR SDK进行相机开发步骤

2024-01-16

基于基恩士扫码枪实现7mm条码注意事项

基于基恩士扫码枪实现7mm条码注意事项

2024-01-16

9 高级语言ADS通讯.ppt

ADS通讯

2021-09-23

win10虚拟机黑屏的几种解决方案.docx

win10虚拟机黑屏合资源共享创建方法

2021-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除