1. Tair数据库简介
Tair是阿里巴巴集团开源的高性能分布式KV存储系统,完全兼容Redis协议。Tair在Redis的基础上进行了大量优化和扩展,支持多种数据结构,提供持久化存储能力,广泛应用于阿里巴巴各核心业务系统。更多学习教程www.fgedu.net.cn
Tair核心特点
高性能:基于内存存储,支持百万级QPS
多引擎支持:支持内存引擎、持久化引擎、混合存储引擎
Redis兼容:完全兼容Redis协议,无缝迁移
分布式架构:支持数据分片和副本复制,高可用
丰富数据结构:支持String、Hash、List、Set、Sorted Set等
2. Tair版本说明
Tair提供开源版本和阿里云托管版本两种选择。学习交流加群风哥微信: itpux-com
开源版本
Tair开源版:基于GitHub开源,支持自建部署
支持Redis OSS 5.0/6.0/7.0协议
支持多种存储引擎
阿里云托管版本
Tair(Redis OSS兼容版):阿里云托管服务
Tair(企业版):增强功能,支持持久内存
Tair(集群版):分布式集群服务
3. Tair下载地址
Tair开源版可以从GitHub获取源码进行编译安装。
官方下载地址
GitHub仓库:https://github.com/alibaba/tair
阿里云Tair:https://www.alibabacloud.com/product/tair
下载源码
# cd /fgeudb/software
# git clone https://github.com/alibaba/tair.git
# 输出示例如下:
Cloning into ‘tair’…
remote: Enumerating objects: 125890, done.
remote: Counting objects: 100% (25178/25178), done.
remote: Compressing objects: 100% (8192/8192), done.
remote: Total 125890 (delta 16986), reused 25000 (delta 16800), pack-reused 100712
Receiving objects: 100% (125890/125890), 85.20 MiB | 10.25 MiB/s, done.
Resolving deltas: 100% (81920/81920), done.
# 查看源码目录
# ls -la tair/
total 64
drwxr-xr-x. 8 root root 4096 Apr 4 10:00 .
drwxr-xr-x. 3 root root 4096 Apr 4 10:00 ..
-rw-r–r–. 1 root root 512 Apr 4 10:00 README.md
drwxr-xr-x. 2 root root 4096 Apr 4 10:00 bin
drwxr-xr-x. 2 root root 4096 Apr 4 10:00 conf
drwxr-xr-x. 2 root root 4096 Apr 4 10:0 doc
drwxr-xr-x. 2 root root 4096 Apr 4 10:00 include
drwxr-xr-x. 2 root root 4096 Apr 4 10:00 src
-rwxr-xr-x. 1 root root 5120 Apr 4 10:00 bootstrap.sh
4. 环境准备
在编译安装Tair之前,需要准备必要的编译环境和依赖库。
系统要求
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# 检查系统架构
# uname -m
x86_64
# 检查内存和磁盘空间
# free -h
total used free shared buff/cache available
Mem: 31G 2.1G 28G 8.5M 1.0G 28G
Swap: 15G 0B 15G
# df -h /fgeudb
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 500G 20G 480G 4% /fgeudb
安装编译依赖
# yum install -y gcc gcc-c++ make autoconf automake libtool
# yum install -y openssl-devel libcurl-devel zlib-devel
# yum install -y cmake git wget
# 安装tbsys和tbnet依赖
# cd /fgeudb/software
# git clone https://github.com/alibaba/tb-common-utils.git
# 输出示例如下:
Cloning into ‘tb-common-utils’…
remote: Enumerating objects: 5120, done.
remote: Counting objects: 100% (1024/1024), done.
remote: Compressing objects: 100% (512/512), done.
remote: Total 5120 (delta 512), reused 1024 (delta 512), pack-reused 4096
Receiving objects: 100% (5120/5120), 5.12 MiB | 2.56 MiB/s, done.
# 编译安装tb-common-utils
# cd tb-common-utils
# sh build.sh
# 输出示例如下:
Building tb-common-utils…
Configuring…
Compiling…
Installing…
Build completed successfully.
5. 源码编译安装实战
以下是编译安装Tair的详细步骤。学习交流加群风哥QQ113257174
步骤1:配置编译环境
# export TBLIB_ROOT=/usr/local/tb-common-utils
# export PATH=$TBLIB_ROOT/bin:$PATH
# 创建安装目录
# mkdir -p /fgeudb/tair/{bin,conf,data,logs}
# 进入源码目录
# cd /fgeudb/software/tair
步骤2:执行编译
# sh bootstrap.sh
# 输出示例如下:
Checking for dependencies…
Checking for gcc… yes
Checking for make… yes
Checking for cmake… yes
Checking for openssl… yes
Checking for libcurl… yes
Bootstrap completed successfully.
# 配置编译选项
# ./configure –prefix=/fgeudb/tair –with-tb-common-utils=/usr/local/tb-common-utils
# 输出示例如下:
Checking for programs…
Checking for headers…
Checking for libraries…
Configuration:
Install path: /fgeudb/tair
TB common utils: /usr/local/tb-common-utils
Compiler: gcc
CFLAGS: -O2 -Wall
# 编译
# make -j$(nproc)
# 输出示例如下:
Making all in src…
CC tair_manager.o
CC tair_server.o
CC data_server.o
CC config_server.o
Linking tair-server…
Build completed successfully.
# 安装
# make install
# 输出示例如下:
Installing tair to /fgeudb/tair…
Creating directories…
Copying binaries…
Copying configurations…
Installation completed successfully.
步骤3:创建Tair用户
# groupadd -g 5001 tair
# useradd -g tair -u 5001 -d /home/tair -s /bin/bash tair
# 设置目录权限
# chown -R tair:tair /fgeudb/tair
# 配置环境变量
# vi /home/tair/.bash_profile
# 添加以下内容
export TAIR_HOME=/fgeudb/tair
export PATH=$TAIR_HOME/bin:$PATH
# 使环境变量生效
# su – tair
$ source ~/.bash_profile
6. Tair配置优化
Tair的配置文件位于安装目录的conf目录下,以下是生产环境的推荐配置。
配置服务器
# vi /fgeudb/tair/conf/configserver.conf
# 配置服务器配置
[public]
config_server=192.168.1.51:5198
config_server=192.168.1.52:5198
group_name=group_1
[configserver]
port=5198
log_file=/fgeudb/tair/logs/config.log
log_level=info
pid_file=/fgeudb/tair/logs/config.pid
group_file=/fgeudb/tair/conf/group.conf
data_file=/fgeudb/tair/data/config/data
# 保存配置文件
数据服务器配置
# vi /fgeudb/tair/conf/dataserver.conf
# 数据服务器配置
[public]
config_server=192.168.1.51:5198
config_server=192.168.1.52:5198
group_name=group_1
[dataserver]
port=5191
log_file=/fgeudb/tair/logs/server.log
log_level=info
pid_file=/fgeudb/tair/logs/server.pid
storage_engine=ldb
ldb_db_path=/fgeudb/tair/data/ldb
ldb_log_path=/fgeudb/tair/logs/ldb
ldb_cache_size=4096
ldb_block_size=4096
# 内存引擎配置(可选)
[memory_engine]
slab_mem_size=8192
slab_factor=1.25
# 保存配置文件
组配置文件
# vi /fgeudb/tair/conf/group.conf
# 组配置
# group_name
group_1
# data server list
# ip:port
192.168.1.51:5191
192.168.1.52:5191
192.168.1.53:5191
# 保存配置文件
7. Tair集群部署
以下是Tair集群的部署步骤,包括配置服务器和数据服务器的启动。
启动配置服务器
# su – tair
$ cd /fgeudb/tair
# 启动配置服务器
$ tair_cfg_svr -f conf/configserver.conf
# 输出示例如下:
[2026-04-04 10:30:00] INFO: Starting config server…
[2026-04-04 10:30:00] INFO: Loading configuration from conf/configserver.conf
[2026-04-04 10:30:00] INFO: Config server started on port 5198
[2026-04-04 10:30:00] INFO: Waiting for data servers to join…
# 检查进程
$ ps -ef | grep tair_cfg_svr
tair 12345 1 0 10:30 ? 00:00:00 tair_cfg_svr -f conf/configserver.conf
启动数据服务器
$ cd /fgeudb/tair
# 启动数据服务器
$ tair_server -f conf/dataserver.conf
# 输出示例如下:
[2026-04-04 10:31:00] INFO: Starting data server…
[2026-04-04 10:31:00] INFO: Loading configuration from conf/dataserver.conf
[2026-04-04 10:31:00] INFO: Connecting to config servers…
[2026-04-04 10:31:00] INFO: Connected to config server 192.168.1.51:5198
[2026-04-04 10:31:00] INFO: Data server started on port 5191
[2026-04-04 10:31:00] INFO: Joining cluster group_1…
# 检查进程
$ ps -ef | grep tair_server
tair 12456 1 0 10:31 ? 00:00:00 tair_server -f conf/dataserver.conf
配置systemd服务
# vi /etc/systemd/system/tair-config.service
[Unit]
Description=Tair Config Server
After=network.target
[Service]
Type=forking
User=tair
Group=tair
ExecStart=/fgeudb/tair/bin/tair_cfg_svr -f /fgeudb/tair/conf/configserver.conf
ExecStop=/bin/kill -15 $MAINPID
PIDFile=/fgeudb/tair/logs/config.pid
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# 创建数据服务器服务文件
# vi /etc/systemd/system/tair-server.service
[Unit]
Description=Tair Data Server
After=network.target tair-config.service
[Service]
Type=forking
User=tair
Group=tair
ExecStart=/fgeudb/tair/bin/tair_server -f /fgeudb/tair/conf/dataserver.conf
ExecStop=/bin/kill -15 $MAINPID
PIDFile=/fgeudb/tair/logs/server.pid
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# 重新加载systemd
# systemctl daemon-reload
# 启动服务
# systemctl start tair-config
# systemctl start tair-server
# 设置开机自启
# systemctl enable tair-config
# systemctl enable tair-server
8. 安装验证与测试
安装完成后,需要进行验证测试确保Tair正常运行。
使用Tair客户端测试
$ tairclient -c 192.168.1.51:5198 -g group_1
# 输出示例如下:
TAIR>
Connected to Tair cluster group_1
Config server: 192.168.1.51:5198
# 设置键值
TAIR> set test_key “Hello Tair”
OK
# 获取键值
TAIR> get test_key
“Hello Tair”
# 设置带过期时间的键值
TAIR> setex temp_key 3600 “Temporary Value”
OK
# 获取键值和TTL
TAIR> get temp_key
“Temporary Value”
TAIR> ttl temp_key
(integer) 3598
# 测试Hash类型
TAIR> hset user:1001 name “Zhang San”
(integer) 1
TAIR> hset user:1001 age 30
(integer) 1
TAIR> hgetall user:1001
1) “name”
2) “Zhang San”
3) “age”
4) “30”
# 测试List类型
TAIR> lpush mylist item1 item2 item3
(integer) 3
TAIR> lrange mylist 0 -1
1) “item3”
2) “item2”
3) “item1”
# 测试Set类型
TAIR> sadd myset member1 member2 member3
(integer) 3
TAIR> smembers myset
1) “member1”
2) “member2”
3) “member3”
# 退出客户端
TAIR> quit
性能测试
$ tair-bench -h 192.168.1.51 -p 5198 -c 50 -n 100000 -t set
# 输出示例如下:
====== SET ======
100000 requests completed in 2.50 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.95% <= 1 milliseconds 99.98% <= 2 milliseconds 100.00% <= 3 milliseconds 100.00% <= 4 milliseconds 100.00% <= 5 milliseconds 40000.00 requests per second # GET性能测试 $ tair-bench -h 192.168.1.51 -p 5198 -c 50 -n 100000 -t get # 输出示例如下: ====== GET ====== 100000 requests completed in 1.80 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.98% <= 1 milliseconds 100.00% <= 2 milliseconds 100.00% <= 3 milliseconds 55555.56 requests per second
至此,Tair数据库的下载和安装已完成。后续可以根据实际业务需求进行集群扩展、性能调优和监控配置。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
