.NET 6中如何使用Redis

1、安装redis

Redis在windows平台上不受官方支持,所以想要在window安装Redis就必须去下载windows提供的安装包。安装地址:https://github.com/tporadowski/redis/releases

2、在NueGet安装包

3、在appsettings.json文件里面添加Redis相关配置信息

"Redis": {"Connection": "127.0.0.1:6379,password=foobared", //连接地址,端口号,密码"InstanceName": "local", //实例名称"DefaultDB": "8" //db8数据库}

redis的密码,可在安装目录下找到redis.windows.conf文件打开查看

4、创建RedisHelper类,代码如下:

using StackExchange.Redis;
using System.Collections.Concurrent;namespace WebApi.Redis
{public class RedisHelper : IDisposable{//连接字符串private string _connectionString;//实例名称private string _instanceName;//默认数据库private int _defaultDB;private ConcurrentDictionary<string, ConnectionMultiplexer> _connections;public RedisHelper(string connectionString, string instanceName,  int defaultDB = 0){_connectionString = connectionString;_instanceName = instanceName;_defaultDB = defaultDB;_connections = new ConcurrentDictionary<string, ConnectionMultiplexer>();}/// <summary>/// 获取ConnectionMultiplexer/// </summary>/// <returns></returns>private ConnectionMultiplexer GetConnect(){return _connections.GetOrAdd(_instanceName, p => ConnectionMultiplexer.Connect(_connectionString));}/// <summary>/// 获取数据库/// </summary>/// <param name="configName"></param>/// <param name="db">默认为0:优先代码的db配置,其次config中的配置</param>/// <returns></returns>public IDatabase GetDatabase(){return GetConnect().GetDatabase(_defaultDB);}public IServer GetServer(string configName = null, int endPointsIndex = 0){var confOption = ConfigurationOptions.Parse(_connectionString);return GetConnect().GetServer(confOption.EndPoints[endPointsIndex]);}public ISubscriber GetSubscriber(string configName = null){return GetConnect().GetSubscriber();}public void Dispose(){if (_connections != null && _connections.Count > 0){foreach (var item in _connections.Values){item.Close();}}}}
}

5、在program.cs中添加依赖

//redis缓存
var section = builder.Configuration.GetSection("Redis");
//连接字符串
string _connectionString = section.GetSection("Connection").Value;
//实例名称
string _instanceName = section.GetSection("InstanceName").Value;
//默认数据库 
int _defaultDB = int.Parse(section.GetSection("DefaultDB").Value ?? "0");
builder.Services.AddSingleton(new RedisHelper(_connectionString, _instanceName, _defaultDB));

6、控制器中可用直接注入依赖使用

using Microsoft.AspNetCore.Mvc;
using StackExchange.Redis;
using WebApi.Redis;namespace WebApi.Controllers
{[Route("api/[controller]/[action]")][ApiController]public class TestController : ControllerBase{private readonly IDatabase _redis;public TestController(RedisHelper redis) {_redis = redis.GetDatabase();}[HttpGet]public Person GetPerson(){string? name = _redis.StringGet("name");return new Person(name, 18);}[HttpPost]public string SavePerson(string name){_redis.StringSet("name",name);return "保存成功!" + name;}}
}

7.运行测试(运行时候,确保redis服务打开)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/333215.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页内容任君采撷-右键无法复制

CSDN一年一度的博客之星评选活动已经结束&#xff0c;刚好点击来看看学习一下大佬们的博客。 发现绝大部分的博主对于知识的公开度都是非常高的&#xff0c;当然除了收费的专栏外。 其中少部分博主对自己的博文设定了一定的操作&#xff0c;无法直接使用博文中的内容。 现在大…

nuxt 不解析HTML结构bug

记录一个本人Vue3迁移Nuxt3的报错 报错信息 [Vue warn]: Failed to resolve directive: top [nitro] [unhandledRejection] TypeError: Cannot read properties of undefined (reading ‘getSSRProps’) 原因是Vue3在迁移到nuxt3的时候有一个自定义指令没有搬过来&#xff0…

掌握Lazada API接口:开启电商开发新篇章,引领业务增长潮流

一、概述 Lazada API接口是Lazada平台提供的软件开发工具包&#xff0c;它允许第三方开发者通过编程方式访问Lazada平台上的商品、订单、用户等数据&#xff0c;并执行相关操作。通过使用Lazada API接口&#xff0c;开发者可以快速构建与Lazada平台集成的应用程序&#xff0c;…

10亿数据高效插入MySQL最佳方案

写在文章开头 你好&#xff0c;我叫sharkchili&#xff0c;目前还是在一线奋斗的Java开发&#xff0c;经历过很多有意思的项目&#xff0c;也写过很多有意思的文章&#xff0c;是CSDN Java领域的博客专家&#xff0c;也是Java Guide的维护者之一&#xff0c;非常欢迎你关注我的…

烟雾识别摄像机

烟雾识别摄像机是一种具有智能识别功能的监控设备&#xff0c;它能够通过图像识别技术检测和识别烟雾&#xff0c;提供实时监测和报警功能。这种摄像机通常应用于各种场所&#xff0c;如工厂、仓库、办公楼、酒店等&#xff0c;起到了重要的安全监测作用。 烟雾识别摄像机的工作…

使用Trie数据结构实现搜索自动完成功能

本文旨在讨论使用 Java 的搜索自动完成的低级实现&#xff0c;将Trie在用例中使用数据结构。 这是一个示例TrieNode类&#xff1a; class TrieNode{ Map<Character,TrieNode> children; boolean isEndOfWord; TrieNode(){ children new HashMap<>(); isEndOfWor…

Making Large Language Models Perform Better in Knowledge Graph Completion

Making Large Language Models Perform Better in Knowledge Graph Completion 基本信息 博客贡献人 鲁智深 作者 Yichi Zhang, Zhuo Chen, Wen Zhang, Huajun Chen 隶属于浙江大学计算机学院和软件学院 摘要 本文主要探讨了如何将有用的知识图谱结构信息融入大语言模型中…

精进单元测试技能——Pytest断言的艺术

本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中&#xff0c;断言是通过 assert 语句来实现的。简单的断言通常用于验证预期值和实际值是否相等&#xff0c;例如&#xf…

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用serlvetdaobean&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…

Adobe XD是什么?探索这款创新的用户体验设计工具

Adobexd是一种基于矢量的设计工具&#xff0c;主要用于设计移动和Web应用程序的用户界面(UI)。与Photoshop或ilustrator等其他Adobe产品相比&#xff0c;它相当轻。对于对快速设计和原型迭代感兴趣的界面设计师来说&#xff0c;轻量级并不是一件坏事。 在早期&#xff0c;Adob…

机械工业品电商平台android

文章目录 一、开发组件和项目结构1、分包完成初始化工具1.1 开源库介绍&#xff1a;1.2 框架搭建1.3 自定义application&#xff0c;初始化网络加载库1.4 配置Glide1.5 网络请求响应对象1.6 工具类JSONUtil&Utils 二、环境配置1、将服务器的基地址&#xff0c;填到android&…

untiy使用http下载资源

文章目录 提醒下载一个资源并保存到本地下载一张图片 提醒 部分API需要将Unity的 Edit/PrejectSetting/Player/OtherSetttings/AConfiguration/ApiCompatibilityLevel 设为.NetFramework 才可以使用 下载一个资源并保存到本地 private IEnumerator DownloadFormServer_IE(st…