c# 把查询出的数据 缓存到redis中
时间: 2024-03-19 12:45:20 浏览: 119
在 C# 中将查询出的数据缓存到 Redis 中,可以使用 StackExchange.Redis 库,这是 Redis 官方推荐的 C# 客户端。
以下是一个示例代码,用于将查询出的数据保存到 Redis 中:
using StackExchange.Redis;
using System;
public class RedisCache
{
private readonly ConnectionMultiplexer _redis;
public RedisCache(string connectionString)
{
_redis = ConnectionMultiplexer.Connect(connectionString);
}
public void SetData(string key, object data, TimeSpan expireTime)
{
var db = _redis.GetDatabase();
db.StringSet(key, JsonConvert.SerializeObject(data), expireTime);
}
public T GetData<T>(string key)
{
var db = _redis.GetDatabase();
var value = db.StringGet(key);
if (value.HasValue)
{
return JsonConvert.DeserializeObject<T>(value);
}
return default(T);
}
}
这里使用了 Newtonsoft.Json 库将数据序列化成 JSON 字符串,并将过期时间设置为 TimeSpan 类型的参数,可以根据需要进行调整。
使用时,可以创建 RedisCache 对象,并调用 SetData 方法将数据保存到 Redis 中,然后调用 GetData 方法从 Redis 中获取数据:
var redis = new RedisCache("localhost");
var data = GetDataFromDatabase(); // 从数据库中获取数据
redis.SetData("mykey", data, TimeSpan.FromMinutes(10)); // 将数据保存到 Redis 中,过期时间为 10 分钟
var cachedData = redis.GetData<MyData>("mykey"); // 从 Redis 中获取数据
需要注意的是,StackExchange.Redis 库支持异步操作,可以使用异步方法提高性能。此外,需要确保 Redis 服务器已经正确配置并运行。
相关推荐


















