第32篇 .Net特性Attribute的高级使用-牛翰网

第32篇 .Net特性Attribute的高级使用

今天给大家讲讲.net中特性的高级使用 1.什么是特性 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。 用[]来标识,在.Net 框...
第73篇 IdentityServer4的简单介绍-牛翰网

第73篇 IdentityServer4的简单介绍

1.什么是IdentityServer4? 它是一个中间件服务框架,集成OIDC与OAuth2.0, 方便搭建任意多个项目。 IdentityServer4的组成 Identity身份 Server服务器 4版本 源代码:https://github.com/Identit...
第77篇 Redis中的Sentinel(哨兵模式)详解-牛翰网

第77篇 Redis中的Sentinel(哨兵模式)详解

前言 Redis的高可用机制有持久化、复制、哨兵和集群。其主要的作用和解决的问题分别是: 持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存...
第36篇 linux服务器上启动framework应用程序流程-牛翰网

第36篇 linux服务器上启动framework应用程序流程

framework开发的应用程序,一般是不会在linux服务器上运行的,但是我们可以通过mono进行应用部署 1.查看linux服务上是否已经安装mono-core 方式1: rpm命令查看 rpm -qa | grep mono-core 有结...
SignalR实时通信,多客户端与服务端交互-牛翰网

SignalR实时通信,多客户端与服务端交互

1.SignalR介绍 SignalR是一个开源的库,跨平台;让Web应用与其他应用通讯变得很简单,Web服务端可以实时的将内容推送给对应的客户端,客户端发送的信息也可以实时到其他客户端。 SignalR提供了...
C#冒泡排序算法-牛翰网

C#冒泡排序算法

冒泡排序实现原理 冒泡排序是一种简单的排序算法,其原理如下: 从待排序的数组的第一个元素开始,依次比较相邻的两个元素。 如果前面的元素大于后面的元素(升序排序),则交换这两个元素的位...
redis缓存穿透和 缓存雪崩-牛翰网

redis缓存穿透和 缓存雪崩

在使用Redis作为缓存系统时,缓存穿透(Cache Penetration) 和 缓存雪崩(Cache Avalanche) 是两种常见的问题。它们会影响缓存系统的性能和稳定性。以下是这两种问题的详细解释及其解决方法。...
泛型,泛型约束-牛翰网

泛型,泛型约束

什么是泛型? 泛型(Generics) 是一种编程技术,广泛应用于面向对象编程(OOP)中,特别是在C#、Java等现代编程语言中。泛型的核心思想是创建可以在多种数据类型上工作的类、接口和方法,而不...
.net core 中的MemoryCache的详细使用-牛翰网

.net core 中的MemoryCache的详细使用

项目搭建了一个基础的框架,实现缓存的AOP拦截,首次查询从数据库获取,再写入缓存,设置过期时间,再次查询数据时从缓存获取。 话不多说我们来上代码实现: 1.定义缓存的接口和实现类 定义缓存...
第41篇 Grpc实现客户端与服务端高效通信-牛翰网

第41篇 Grpc实现客户端与服务端高效通信

grpc的确是现在最流行的跨平台间的通信技术。远不止.net上使用。grpc是谷歌公司推出的跨语言平台之间的通信技术。和webapi不同的是,可以使用自己的语言和另一种语言进行通信。 简单来讲就是首...