【朝夕教育】2023年11月 .NET CORE工具案例-DeveloperSharp(Redis缓存)

本文介绍了Redis的安装、配置、使用方法,以及在.NET项目中通过DeveloperSharp实现Redis缓存和自定义Redis连接。涵盖了缓存优化、数据库操作、分布式锁等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,优快云博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年优快云博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏


🚀前言

Redis是一个高性能的开源键值对存储系统,可以用作数据库、缓存、消息中间件等多种用途。Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合,可以对这些数据结构进行快速的读写操作。Redis还提供了一些高级特性,如事务、发布/订阅、Lua脚本等。

Redis的作用和应用场景包括:

  1. 缓存:Redis可以作为缓存来加速读取频繁的数据,在访问数据库之前将数据存储在Redis中,从而加快数据的响应速度。

  2. 计数器:Redis提供原子操作,可以用来实现计数器的功能,例如网站的PV/UV统计、抽奖活动的抽奖次数等。

  3. 排行榜:Redis提供了有序集合,可以存储一些带权值的元素,可以用来实现排行榜。

  4. 队列:Redis提供了列表的操作,可以进行队列的操作,例如任务队列、消息队列等。

  5. 分布式锁:Redis可以作为分布式锁来保证同步性,避免出现多个客户端同时修改某个数据的情况。

Redis作为一个高性能的存储系统,可以被广泛应用于各种场景,它具备快速、高效、可靠、可扩展等优点。

本文主要介绍DeveloperSharp的使用,DeveloperSharp是一个研发中大型项目必备的系统平台,也是一个低代码平台。

它主要包括了如下一些功能:

  • 基于Sql语句、存储过程、事务、分页的数据库操作。并几乎支持市面上所有种类的数据库。
  • 图片操作。裁剪、缩放、加水印。
  • http请求调用(Post与Get)
  • 高效分页
  • Web服务/WebApi的负载均衡
  • 数据库的负载均衡,以及读写分离
  • CORS跨域访问
  • UUID全球通用唯一识别码
  • MQ消息队列(请另行使用DeveloperSharp.RabbitMQ包)
  • Redis缓存(请另行使用DeveloperSharp.Redis包)
  • “异种数据库”的负载均衡
  • 其他相关功能

🚀一、Redis缓存

🔎1.安装包

DeveloperSharp

在这里插入图片描述

🔎2.添加配置文件

在.Net Core环境下,要在appsettings.json文件中添加“DeveloperSharp.Redis”节点(如下配置示例),并把appsettings.json文件放到程序执行目录中(即bin目录下与dll、exe等文件的同一目录中)(放错了位置会报错)

{
 "DeveloperSharp.Redis":[{
    "HostName":"132.294.52.135",
    "Database":10,
    "Password":"Admin123",
    "Port":6379
 }]
}

🔎3.使用

using DeveloperSharp.Redis;
------------------------------

//1.存取“字符串”示例
//首先,向Redis缓存中存入字符串"世界,你好"
RedisHelper.SetStringKey("MyText", "世界,你好");
//然后,从Redis缓存中取出字符串"世界,你好"
string aa = RedisHelper.GetStringKey("MyText");

//2.存取“对象”示例
//首先,向Redis缓存中存入对象teacher
teacher obj = new teacher { name = "王老师", age = 42 };
RedisHelper.SetStringKey("MyTeacher", obj);
//然后,从Redis缓存中取出对象teacher
teacher t = RedisHelper.GetStringKey<teacher>("MyTeacher");
string Name = t.name;
int Age = t.age;

🔎4.自定义redis

实现手写Redis连接库是一个复杂的过程,需要了解Redis协议以及如何通过套接字与Redis服务器通信。以下是基本的步骤:

  1. 创建连接对象

首先,你需要使用System.Net.Sockets.Socket类创建一个TCP套接字,并连接到Redis服务器。这个过程需要指定Redis服务器的地址和端口号。

using System.Net.Sockets;

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("localhost", 6379);
  1. 执行操作

一旦你连接到Redis服务器,就可以通过套接字发送各种Redis命令。这些命令需要遵循Redis协议,具体可以参考Redis官方文档中的协议描述。

例如,下面的代码实现了SET和GET命令:

var setCommand = Encoding.UTF8.GetBytes("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n");
socket.Send(setCommand);

var getCommand = Encoding.UTF8.GetBytes("*2\r\n$3\r\nGET\r\n$3\r\nkey\r\n");
socket.Send(getCommand);

var buffer = new byte[1024];
var length = socket.Receive(buffer);
var response = Encoding.UTF8.GetString(buffer, 0, length);
Console.WriteLine(response);

在这个例子中,我们手动编码了Redis命令并通过套接字发送给服务器。然后,我们通过套接字接收服务器的响应,并将其解码为字符串。

  1. 关闭连接

在你的程序结束时,你需要关闭套接字,以确保资源得到释放。

socket.Close();

由于Redis协议比较复杂,实现一个完整的Redis连接库是一项非常耗时和复杂的工作。如果你想在C#中使用Redis,我建议使用第三方现有的客户端库,它们已经实现了完整的Redis协议和其他功能。


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值