CloudStructures 3.3.0

dotnet add package CloudStructures --version 3.3.0                
NuGet\Install-Package CloudStructures -Version 3.3.0                
该命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="CloudStructures" Version="3.3.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add CloudStructures --version 3.3.0                
#r "nuget: CloudStructures, 3.3.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互工具或脚本的源代码中以引用包。
// 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)映射程序。

Releases

支持的框架

  • .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 已计算。
兼容的目标框架
包含的目标框架(在包中)
更多关于 目标框架.NET 标准库 的信息。

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