Skip to content

Latest commit

 

History

History
95 lines (74 loc) · 4.63 KB

README-CN.md

File metadata and controls

95 lines (74 loc) · 4.63 KB

AlibabaCloud-CSharp-sdk

概述

基于 StackExchange.Redis 封装,用于操作 云数据库Redis企业版 的客户端,支持企业版多种 Module 的操作命令即部分高级特性。

  • TairString,支持 string 设置 version,增强cascad命令可轻松实现分布式锁。(已开源
  • TairHash,可实现 field 级别的过期。(已开源
  • TairZset, 支持多维排序。(已开源)
  • TairDoc, 支持存储JSON类型。
  • TairGis, 支持地理位置点、线、面的相交、包含等关系判断。(已开源
  • TairBloom, 支持动态扩容的布隆过滤器。
  • TairRoaring, Roaring Bitmap, 使用少量的存储空间来实现海量数据的查询优化。
  • TairSearch,支持 ES-LIKE 语法的全文索引和搜索模块。
  • TairCpc, 基于CPC(Compressed Probability Counting)压缩算法开发的数据结构,支持仅占用很小的内存空间对采样数据进行高性能计算。
  • TairTs, 时序数据结构,提供低时延、高并发的内存读写访问。

安装

本组件是基于 .NET Core 5.0 和 StackExchange.Redis2.5.61 开发,所以用户在使用过程注意安装的 .NET 版本。

该组件已上传至 Nuget,且依赖于 StackExchange.Redis,可直接在Nuget控制界面搜索AlibabaCloud.TairSDK以及 StackExchange.Redis进行下载安装。

Example

连接

private static readonly ConnectionMultiplexer connDC = ConnectionMultiplexer.Connect("localhost");
private readonly TairString tair = new(connDC, 0);

使用ConnectionMultiplexer.Connect 创建一个ConnectionMultiplexer实例用来使用。Connect可以传入配置字符串或者是ConfigurationOptions对象。 一旦创建了ConnectionMultiplexer实例,就可以访问一个redis数据库(无论是单机还是集群)。

接下来创建相应Module的对象,进而访问数据库。此外redis支持多个数据库,所以在new一个对象时,通过第二个参数指定对应的数据库。(集群不支持此功能)

Async

对于StackExchange.Redis,使用 ExecuteAsync返回结果为Task<RedisResult>类型,可使用如下方式获取真实结果:

var ret1 = tairStringAsync.exset("key", "value");
Console.WriteLine(ResultHelper.Long(ret1.Result));//输出为 "OK"

.Result用于得到Async执行完毕的结果,ResultHelper.Long用于将RedisResult转换为用户需要的结果。

API使用

TairString示例如下

using System.Text;
using Alibaba.TairSDK.TairString;
using StackExchange.Redis;

namespace TestString
{
    public class Program
    {
        private static readonly ConnectionMultiplexer connDC = ConnectionMultiplexer.Connect("localhost:6379");
        private static readonly TairString tair = new(connDC, 0);
        
        static void Main(string[] args)
        {
            var bkey = Encoding.UTF8.GetBytes("bkey");
            var bvalue = Encoding.UTF8.GetBytes("bvalue");
            var key = "key";
            var value = "value";

            //string
            var ret = tair.exset(key, value);
            Console.WriteLine(ret);
            var result = tair.exget(key);
            Console.WriteLine(result.getValue());
            Console.WriteLine(result.getVersion());
            

            //binary
            ret = tair.exset(bkey, bvalue);
            Console.WriteLine(ret);
            var bresult = tair.exget(bkey);
            Console.WriteLine(Encoding.UTF8.GetString(bresult.getValue()));
            Console.WriteLine(bresult.getVersion());
        }
    } 

}

更多示例请参考Alibaba.TairSDK.Tests

Tair 所有的 SDK

language GitHub
Java https://github.com/alibaba/alibabacloud-tairjedis-sdk
Python https://github.com/alibaba/tair-py
Go https://github.com/alibaba/tair-go
.Net https://github.com/alibaba/AlibabaCloud.TairSDK