English | 简体中文
基于 go-redis 封装,用于操作 Tair Modules 的客户端。
- TairHash, 可实现 field 级别的过期。(已开源)
- TairString, 支持 string 设置 version,增强的
cas
和cad
命令可轻松实现分布式锁。(已开源) - TairZset, 支持多维排序。(已开源)
- TairBloom, 支持动态扩容的布隆过滤器。
- TairRoaring, Roaring Bitmap, 使用少量的存储空间来实现海量数据的查询优化。
- TairSearch, 支持ES-LIKE语法的全文索引和搜索模块。
- TairDoc, 支持存储
JSON
类型。 - TairGis, 支持地理位置点、线、面的相交、包含等关系判断。(已开源)
- TairTs, 时序数据结构,提供低时延、高并发的内存读写访问。
- TairCpc, 基于CPC(Compressed Probability Counting)压缩算法开发的数据结构,支持仅占用很小的内存空间对采样数据进行高性能计算。
- TairVector, 提供高性能、实时,集存储、检索于一体的向量数据库服务。
go get github.com/alibaba/tair-go
一个 TairString 的示例如下所示:
go.mod
require (
github.com/alibaba/tair-go v1.1.3
)
test.go
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
"github.com/alibaba/tair-go/tair"
)
var ctx = context.Background()
var tairClient *tair.TairClient
func init() {
tairClient = tair.NewTairClient(&redis.Options{
Addr: "xxx.redis.rds.aliyuncs.com:6379",
Password: "xxx",
DB: 0,
})
}
func main() {
err := tairClient.ExSet(ctx, "exkey", "exval").Err()
if err != nil {
fmt.Println(err.Error())
}
val, err := tairClient.ExGet(ctx, "exkey").Result()
if err != nil {
panic(err)
}
fmt.Println("get exkey values is: ", val)
}