CloudStructures 3.3.0
dotnet add package CloudStructures --version 3.3.0
NuGet\Install-Package CloudStructures -Version 3.3.0
<PackageReference Include="CloudStructures" Version="3.3.0" />
paket add CloudStructures --version 3.3.0
#r "nuget: CloudStructures, 3.3.0"
// Install CloudStructures as a Cake Addin #addin nuget:?package=CloudStructures&version=3.3.0 // Install CloudStructures as a Cake Tool #tool nuget:?package=CloudStructures&version=3.3.0
CloudStructures
CloudStructures 是基于 Redis 的客户端,基于 StackExchange.Redis。
StackExchange.Redis 是一个非常纯净和底层的库。它是类似于 ADO.NET 的 Redis 驱动程序。它很难作为原始使用。CloudStructures 提供类似于 Dapper 的简单 O/R(对象 / Redis)映射程序。
支持的框架
- .NET 6+
- .NET Standard 2.0+
- .NET Framework 4.6.1+
安装
dotnet add package CloudStructures
Redis 的数据结构
CloudStructures 支持以下 Redis 数据类型。所有方法都是异步的。
结构 | 描述 |
---|---|
RedisBit |
位 API |
RedisDictionary |
具有约束值类型的散列 API |
RedisGeo |
几何 API |
RedisHashSet |
类似于 RedisDictionary |
RedisHyperLogLog |
HyperLogLogs API |
RedisList |
列表 API |
RedisLua |
Lua评估API |
RedisSet<T> |
集合API |
RedisSortedSet<T> |
有序集合API |
RedisString<T> |
字符串API |
入门指南
以下代码是简单的示例。
// RedisConnection have to be held as static.
public static class RedisServer
{
public static RedisConnection Connection { get; }
public static RedisServer()
{
var config = new RedisConfig("name", "connectionString");
Connection = new RedisConnection(config);
}
}
// A certain data class
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
// 1. Create redis structure
var key = "test-key";
var defaultExpiry = TimeSpan.FromDays(1);
var redis = new RedisString<Person>(RedisServer.Connection, key, defaultExpiry)
// 2. Call command
var neuecc = new Person("neuecc", 35);
await redis.SetAsync(neuecc);
var result = await redis.GetAsync();
值转换器
如果您使用这个库,应当实现IValueConverter
来序列化您原始的类。除非您将自定义的IValueConverter
传递给RedisConnection
构造函数,否则将自动回退到我们提供的默认转换器SystemTextJsonConverter
。
如何实现自定义的IValueConverter
using CloudStructures.Converters;
using Utf8Json;
using Utf8Json.Resolvers;
namespace HowToImplement_CustomValueConverter
{
public sealed class Utf8JsonConverter : IValueConverter
{
public byte[] Serialize<T>(T value)
=> JsonSerializer.Serialize(value, StandardResolver.AllowPrivate);
public T Deserialize<T>(byte[] value)
=> JsonSerializer.Deserialize<T>(value, StandardResolver.AllowPrivate);
}
}
using CloudStructures.Converters;
using MessagePack;
using MessagePack.Resolvers;
namespace HowToImplement_CustomValueConverter
{
public sealed class MessagePackConverter : IValueConverter
{
private MessagePackSerializerOptions Options { get; }
public MessagePackConverter(MessagePackSerializerOptions options)
=> this.Options = options;
public byte[] Serialize<T>(T value)
=> MessagePackSerializer.Serialize(value, this.Options);
public T Deserialize<T>(byte[] value)
=> MessagePackSerializer.Deserialize<T>(value, this.Options);
}
}
作者
樱井勇作是日本东京的软件开发者。自2011年4月起获得微软MVP (C#)。他是这个项目的原始所有者。
铃木隆明是日本福井的软件开发者。自2012年7月起获得微软MVP (C#)。他是领导.NET Standard支持的贡献者。
许可协议
此库受MIT许可证的约束。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net5.0被计算过。 net5.0-windows被计算过。 net6.0是兼容的。 net6.0-android被计算过。 net6.0-ios被计算过。 net6.0-maccatalyst被计算过。 net6.0-macos被计算过。 net6.0-tvos被计算过。 net6.0-windows被计算过。 net7.0是兼容的。 net7.0-android被计算过。 net7.0-ios被计算过。 net7.0-maccatalyst被计算过。 net7.0-macos被计算过。 net7.0-tvos被计算过。 net7.0-windows被计算过。 net8.0是兼容的。 net8.0-android被计算过。 net8.0-browser被计算过。 net8.0-ios被计算过。 net8.0-maccatalyst被计算过。 net8.0-macos被计算过。 net8.0-tvos被计算过。 net8.0-windows被计算过。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET 标准库 | netstandard2.0 兼容。 netstandard2.1 兼容。 |
.NET 框架 | net461 兼容。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETFramework 4.6.1
- StackExchange.Redis (>= 2.7.33)
- System.Text.Json (>= 6.0.0)
-
.NETStandard 2.0
- StackExchange.Redis (>= 2.7.33)
- System.Text.Json (>= 6.0.0)
-
.NETStandard 2.1
- StackExchange.Redis (>= 2.7.33)
- System.Text.Json (>= 6.0.0)
-
net6.0
- StackExchange.Redis (>= 2.7.33)
-
net7.0
- StackExchange.Redis (>= 2.7.33)
-
net8.0
- StackExchange.Redis (>= 2.7.33)
NuGet 包 (7)
显示依赖 CloudStructures 的前 5 个 NuGet 包
包 | 下载 |
---|---|
Glimpse.CloudStructures.Redis
Redis Profiler for Glimpse. 目标是 CloudStructures(作为包装 StackExchange.Redis 的 Redis 客户端)。 |
|
RedisServerWrapper
RedisServer 包装器。使用 CloudStructure... |
|
CloudStructures-Rx
Redis PubSub to Observable。 |
|
CloudStructures.LZ4
JSON+LZ4 ValueConverter for CloudStructures(作为包装 StackExchange.Redis 的 Redis 客户端)。 |
|
CloudStructures.Converters.MessagePack
为CloudStructures提供MessagePackConverter。 |
GitHub仓库 (1)
显示依赖CloudStructures的GitHub前1个热门仓库
仓库 | 星级 |
---|---|
neuecc/LightNode
基于OWIN的Micro RPC/REST框架
|
版本 | 下载 | 最后更新 |
---|---|---|
3.3.0 | 3,127 | 4/7/2024 |
3.3.0-preview1 | 60 | 3/26/2024 |
3.2.0 | 71,832 | 11/17/2021 |
3.1.0 | 675 | 11/11/2021 |
3.0.2 | 7,337 | 5/5/2021 |
3.0.0 | 436 | 4/29/2021 |
2.3.2 | 56,924 | 11/13/2019 |
2.3.1 | 1,789 | 11/2/2019 |
2.2.0 | 915 | 10/23/2019 |
2.1.0 | 4,265 | 3/3/2019 |
2.0.0 | 968 | 2/27/2019 |
1.2.0.1-beta | 1,327 | 4/14/2017 |
1.2.0 | 20,102 | 10/9/2015 |
1.1.0 | 5,081 | 5/26/2015 |
1.0.0 | 2,619 | 2/5/2015 |
0.6.1 | 11,646 | 11/15/2013 |
0.6.0 | 1,616 | 11/14/2013 |
0.5.1 | 1,530 | 8/3/2013 |
0.5.0 | 1,529 | 7/29/2013 |
0.4.2-beta | 1,180 | 6/18/2013 |
0.4.1-beta | 1,218 | 6/9/2013 |
0.4.0-beta | 1,277 | 6/9/2013 |
0.3.0-beta | 1,111 | 5/8/2013 |
0.2.4-beta | 1,163 | 4/29/2013 |
0.2.3-beta | 1,196 | 4/25/2013 |
0.2.2-beta | 1,106 | 4/25/2013 |
0.2.1-beta | 1,124 | 4/25/2013 |
0.2.0-beta | 1,126 | 4/24/2013 |
0.1.2-beta | 1,180 | 4/23/2013 |
0.1.1-beta | 1,202 | 4/17/2013 |
0.1.0-beta | 1,118 | 4/4/2013 |