基于
StackExchange.Redis
封装的Redis客户端
- 支持
.Net Framework
、.Net Core
- 支持同步、异步操作(async\await)
- 使用简单,方便扩展
- 常见redis数据类型:
String
:字符串List
:列表Set
:集合SortedSet
:有序集合Hash
:哈希
Package | NuGet Stable | NuGet Pre-release | Downloads | MyGet |
---|---|---|---|---|
Sean.Core.Redis |
Id:Sean.Core.Redis
- Package Manager
PM> Install-Package Sean.Core.Redis
如果Redis是集群部署的话,地址用","分隔即可。
- .NET Framework:
app.config
、web.config
<appSettings>
<add key="RedisEndPoints" value="127.0.0.1:6379" />
<add key="RedisPassword" value="" />
<add key="RedisDefaultSerializeType" value="0" />
</appSettings>
- .NET Core:
appsettings.json
{
"Redis": {
"EndPoints": "127.0.0.1:6379",
"Password": "",
"DefaultSerializeType": 0,
}
}
项目:
examples\Example.NetCore
- Redis初始化
- 不使用依赖注入
// 示例1:
RedisManager.Initialize(configuration);
// 示例2:
RedisManager.Initialize(new RedisClientOptions
{
EndPoints = "127.0.0.1:6379",
Password = string.Empty,
DefaultSerializeType = SerializeType.Json
});
- 使用依赖注入
services.AddRedis(configuration);
- Redis使用示例
- string => 最简单的用法
var cacheKey = "test";
Console.WriteLine($"添加string缓存:{RedisHelper.StringSet(cacheKey, new TestModel { Id = 1001, Name = "Sean" }, TimeSpan.FromSeconds(20))}");
Console.WriteLine($"同步获取缓存:{JsonHelper.Serialize(RedisHelper.StringGet<Test>(cacheKey))}");
Console.WriteLine($"异步获取缓存:{JsonHelper.Serialize(RedisHelper.StringGetAsync<Test>(cacheKey).Result)}");
Console.WriteLine($"手动删除缓存:{RedisHelper.KeyDelete(cacheKey)}");
- list => 实现队列(先进先出)
var cacheKeyListQueue = "testListQueue";
var list = new List<Test>
{
new TestModel { Id = 1002, Name = "aaa" },
new TestModel { Id = 1003, Name = "bbb" },
new TestModel { Id = 1004, Name = "ccc" },
};
Console.WriteLine($"添加list缓存:{RedisHelper.ListRightPush(cacheKeyListQueue, list)}");
Console.WriteLine($"设置缓存超时时间:{RedisHelper.KeyExpire(cacheKeyListQueue, TimeSpan.FromSeconds(20))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListQueue))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListQueue))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListQueue))}");
- list => 实现堆栈(先进后出)
var cacheKeyListStack = "testListStack";
Console.WriteLine($"添加list缓存:{RedisHelper.ListLeftPush(cacheKeyListStack, list)}");
Console.WriteLine($"设置缓存超时时间:{RedisHelper.KeyExpire(cacheKeyListStack, TimeSpan.FromSeconds(20))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListStack))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListStack))}");
Console.WriteLine($"获取缓存:{JsonHelper.Serialize(RedisHelper.ListLeftPop<Test>(cacheKeyListStack))}");