目录
[步骤 1:使用 Docker 运行 Redis](#步骤 1:使用 Docker 运行 Redis)
[步骤 2:添加 Redis NuGet 包](#步骤 2:添加 Redis NuGet 包)
[步骤 3:配置 RedisProgram.cs](#步骤 3:配置 RedisProgram.cs)
[步骤 4:创建 Redis 服务](#步骤 4:创建 Redis 服务)
[步骤 5:在控制器中使用 Redis](#步骤 5:在控制器中使用 Redis)

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
Redis 是一个速度极快的内存键值存储系统,常用于缓存 、会话管理 和实时应用程序 。在本指南中,我们将通过一个简单的示例学习如何将 Redis 集成到**.NET Core Web API中。**
步骤 1:使用 Docker 运行 Redis
docker run --name redis-demo -d -p 6379:6379 redis
步骤 2:添加 Redis NuGet 包
dotnet add package StackExchange.Redis
步骤 3:配置 RedisProgram.cs
using StackExchange.Redis;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<IConnectionMultiplexer>(sp =>
{
var configuration = builder.Configuration.GetConnectionString("Redis");
return ConnectionMultiplexer.Connect(configuration);
});
builder.Services.AddScoped<RedisCacheService>();
builder.Services.AddControllers();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
添加连接字符串appsettings.json:
{
"ConnectionStrings": {
"Redis": "localhost:6379"
}
}
步骤 4:创建 Redis 服务
RedisCacheService.cs
using StackExchange.Redis;
using System.Text.Json;
public class RedisCacheService
{
private readonly IDatabase _db;
public RedisCacheService(IConnectionMultiplexer redis)
{
_db = redis.GetDatabase();
}
public async Task SetAsync<T>(string key, T value, TimeSpan? expiry = null)
{
var json = JsonSerializer.Serialize(value);
await _db.StringSetAsync(key, json, expiry);
}
public async Task<T?> GetAsync<T>(string key)
{
var value = await _db.StringGetAsync(key);
if (value.IsNullOrEmpty) return default;
return JsonSerializer.Deserialize<T>(value!);
}
public async Task RemoveAsync(string key)
{
await _db.KeyDeleteAsync(key);
}
}
步骤 5:在控制器中使用 Redis
Controllers/ProductsController.cs
using Microsoft.AspNetCore.Mvc;
ApiController
Route("api/\[controller\]")
public class ProductsController : ControllerBase
{
private readonly RedisCacheService _cache;
public ProductsController(RedisCacheService cache)
{
_cache = cache;
}
HttpGet("{id}")
public async Task<IActionResult> GetProduct(int id)
{
string key = $"product:{id}";
var product = await _cache.GetAsync<Product>(key);
if (product != null)
return Ok(product);
// Simulate DB fetch
product = new Product { Id = id, Name = $"Product {id}" };
await _cache.SetAsync(key, product, TimeSpan.FromMinutes(1));
return Ok(product);
}
}
public record Product
{
public int Id { get; set; }
public string Name { get; set; }
}
步骤六:测试
运行应用程序:
dotnet run
现在调用 API:
GET https://localhost:5001/api/products/1
首次请求 → 从数据库加载产品(模拟)。
下一个请求 → 会立即从 Redis 中响应。
结论
Redis + .NET Core =更快的应用和更好的可扩展性。
可用于缓存、会话、发布/订阅和实时应用。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。