在.NET中使用Redis作为分布式缓存的一个常见库是StackExchange.Redis以下是如何使用StackExchange.Redis库在.NET Core应用程序中设置和获取Redis缓存数据的示例代码。
首先,通过NuGet安装StackExchange.Redis库:
dotnet add package StackExchange.Redis
然后,在你的代码中使用以下方式操作Redis:
using StackExchange.Redis;
using System;
public class RedisCacheService
{
private readonly ConnectionMultiplexer _redisConnection;
private readonly IDatabase _database;
public RedisCacheService(string configuration)
{
_redisConnection = ConnectionMultiplexer.Connect(configuration);
_database = _redisConnection.GetDatabase();
}
public void Set<T>(string key, T value, TimeSpan? expiry = null)
{
_database.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value), expiry);
}
public T Get<T>(string key)
{
var value = _database.StringGet(key);
return value.IsNullOrEmpty ? default : Newtonsoft.Json.JsonConvert.DeserializeObject<T>(value);
}
}
// 使用示例
var cacheService = new RedisCacheService("localhost");
cacheService.Set("myKey", "myValue", TimeSpan.FromMinutes(10));
string value = cacheService.Get<string>("myKey");
Console.WriteLine(value); // 输出: myValue
在这个示例中,RedisCacheService
类封装了对Redis的连接和基本操作。Set
方法用于将数据存储到Redis缓存中,而Get
方法用于从缓存中检索数据。数据以字符串形式存储,并使用Newtonsoft.Json进行序列化。
请注意,在生产环境中,你需要提供正确的Redis连接字符串,并且应该考虑使用更安全的方式来管理你的连接字符串,例如使用配置文件或者安全的配置管理工具。