1. Pika数据库简介
Pika是360基础架构团队开发的一款高性能持久化KV存储系统,完全兼容Redis协议。Pika基于RocksDB存储引擎,支持大容量数据存储,解决了Redis在数据量较大时内存成本过高的问题。更多学习教程www.fgedu.net.cn
Pika核心特点
大容量存储:基于RocksDB,支持TB级数据存储
Redis兼容:完全兼容Redis协议,支持大部分Redis命令
高性能:读写性能接近Redis,支持百万级QPS
持久化存储:数据持久化到磁盘,重启不丢失
主从复制:支持主从同步,实现高可用
2. Pika版本说明
Pika提供多个版本,用户可根据需求选择合适的版本。学习交流加群风哥微信: itpux-com
最新版本信息
Pika v4.0.2-alpha:最新测试版本,包含新特性
Pika v3.4.1:稳定版本,推荐生产环境使用
Pika v3.0.8:历史稳定版本
版本特性
v4.x版本:支持更多Redis命令,性能优化
v3.x版本:稳定可靠,生产环境推荐
v2.x版本:基础版本,功能相对较少
3. Pika下载地址
Pika可以从GitHub获取预编译二进制包或源码进行编译安装。
官方下载地址
GitHub仓库:https://github.com/OpenAtomFoundation/pika
发布页面:https://github.com/OpenAtomFoundation/pika/releases
下载预编译二进制包
# cd /fgeudb/software
# wget https://github.com/OpenAtomFoundation/pika/releases/download/v3.4.1/pika-linux-x86_64-v3.4.1.tar.bz2
# 输出示例如下:
–2026-04-04 10:00:00– https://github.com/OpenAtomFoundation/pika/releases/download/v3.4.1/pika-linux-x86_64-v3.4.1.tar.bz2
Resolving github.com… 140.82.121.4
Connecting to github.com|140.82.121.4|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 52428800 (50M) [application/octet-stream]
Saving to: ‘pika-linux-x86_64-v3.4.1.tar.bz2’
pika-linux-x86_64-v3.4.1.tar.bz2 100%[===================>] 50.00M 10.5MB/s in 4.8s
2026-04-04 10:00:05 (10.4 MB/s) – ‘pika-linux-x86_64-v3.4.1.tar.bz2’ saved
# 验证下载文件
# ls -lh pika-linux-x86_64-v3.4.1.tar.bz2
-rw-r–r–. 1 root root 50M Apr 4 10:00 pika-linux-x86_64-v3.4.1.tar.bz2
4. 环境准备
在安装Pika之前,需要准备必要的系统环境。
系统要求
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# 检查系统架构
# uname -m
x86_64
# 检查glibc版本(Pika要求glibc 2.17+)
# ldd –version
ldd (GNU libc) 2.17
# 检查内存和磁盘空间
# 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
# 创建Pika用户和组
# groupadd -g 5002 pika
# useradd -g pika -u 5002 -d /home/pika -s /bin/bash pika
# 创建安装目录
# mkdir -p /fgeudb/pika/{bin,conf,data,logs}
# chown -R pika:pika /fgeudb/pika
5. 二进制包安装实战
使用预编译二进制包是最简单的安装方式,以下是详细步骤。学习交流加群风哥QQ113257174
步骤1:解压安装包
# cd /fgeudb/software
# tar -xjf pika-linux-x86_64-v3.4.1.tar.bz2
# 输出示例如下:
# ls -la
total 51200
drwxr-xr-x. 3 root root 4096 Apr 4 10:05 .
drwxr-xr-x. 3 root root 4096 Apr 4 10:00 ..
-rw-r–r–. 1 root root 52428800 Apr 4 10:00 pika-linux-x86_64-v3.4.1.tar.bz2
drwxr-xr-x. 2 root root 4096 Apr 4 10:05 output
# 查看解压内容
# ls -la output/
total 51200
-rwxr-xr-x. 1 root root 52428800 Apr 4 10:05 pika
-rw-r–r–. 1 root root 5120 Apr 4 10:05 pika.conf
-rw-r–r–. 1 root root 1024 Apr 4 10:05 README.md
步骤2:安装Pika
# cp output/pika /fgeudb/pika/bin/
# cp output/pika.conf /fgeudb/pika/conf/
# 设置权限
# chown -R pika:pika /fgeudb/pika
# chmod +x /fgeudb/pika/bin/pika
# 验证安装
# /fgeudb/pika/bin/pika -v
# 输出示例如下:
Pika version 3.4.1
Build type: Release
Build date: 2025-12-01
Git commit: abc123def
步骤3:配置环境变量
# vi /home/pika/.bash_profile
# 添加以下内容
export PIKA_HOME=/fgeudb/pika
export PATH=$PIKA_HOME/bin:$PATH
# 使环境变量生效
# su – pika
$ source ~/.bash_profile
# 验证环境变量
$ which pika
/fgeudb/pika/bin/pika
6. 源码编译安装实战
如果需要自定义编译选项,可以从源码编译安装。
步骤1:安装编译依赖
# yum install -y gcc gcc-c++ make autoconf automake
# yum install -y cmake git wget
# 安装依赖库
# yum install -y snappy-devel zlib-devel bzip2-devel
# yum install -y lz4-devel zstd-devel
步骤2:下载源码
# cd /fgeudb/software
# git clone https://github.com/OpenAtomFoundation/pika.git
# 输出示例如下:
Cloning into ‘pika’…
remote: Enumerating objects: 51200, done.
remote: Counting objects: 100% (10240/10240), done.
remote: Compressing objects: 100% (4096/4096), done.
remote: Total 51200 (delta 6144), pack-reused 40960
Receiving objects: 100% (51200/51200), 100.00 MiB | 20.00 MiB/s, done.
# 切换到稳定版本
# cd pika
# git tag
v2.0.0
v2.1.0
v2.2.0
v3.0.0
v3.0.8
v3.4.0
v3.4.1
v4.0.0
v4.0.1
v4.0.2-alpha
# 切换到v3.4.1版本
# git checkout v3.4.1
HEAD is now at abc123def… Release v3.4.1
步骤3:编译安装
# mkdir -p build && cd build
# 配置编译选项
# cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_GLOG=ON
# 输出示例如下:
— The C compiler identification is GNU 4.8.5
— The CXX compiler identification is GNU 4.8.5
— Check for working C compiler: /usr/bin/cc
— Check for working CXX compiler: /usr/bin/c++
— Configuring done
— Generating done
— Build files have been written to: /fgeudb/software/pika/build
# 编译
# make -j$(nproc)
# 输出示例如下:
Scanning dependencies of target glog
[ 1%] Building CXX object CMakeFiles/glog.dir/src/glog/src/logging.cc.o
[ 2%] Building CXX object CMakeFiles/glog.dir/src/glog/src/raw_logging.cc.o
…
[ 98%] Building CXX object CMakeFiles/pika.dir/src/pika_server.cc.o
[100%] Linking CXX executable pika
[100%] Built target pika
# 安装
# make install DESTDIR=/fgeudb/pika
# 输出示例如下:
Install the project…
— Install configuration: “Release”
— Installing: /fgeudb/pika/bin/pika
— Installing: /fgeudb/pika/conf/pika.conf
7. Pika配置优化
Pika的配置文件为pika.conf,以下是生产环境的推荐配置。更多学习教程公众号风哥教程itpux_com
配置文件示例
# vi /fgeudb/pika/conf/pika.conf
# Pika服务器配置
port : 9221
thread-num : 24
sync-thread-num : 6
log-path : /fgeudb/pika/logs/
loglevel : info
db-path : /fgeudb/pika/data/
pidfile : /fgeudb/pika/logs/pika.pid
# 网络配置
max-connection : 20000
timeout : 60
tcp-keepalive : 60
# 存储引擎配置
write-buffer-size : 268435456
max-write-buffer-num : 4
target-file-size-base : 20971520
max-cache-statistic-keys : 100000
max-bytes-for-level-base : 1073741824
# 复制配置
slave-priority : 100
slave-read-only : yes
# 持久化配置
dump-prefix : dump
dump-expire : 0
# 安全配置
requirepass : YourSecurePassword123!
masterauth : YourSecurePassword123!
# 保存配置文件
配置systemd服务
# vi /etc/systemd/system/pika.service
[Unit]
Description=Pika Persistent KV Storage
After=network.target
[Service]
Type=forking
User=pika
Group=pika
ExecStart=/fgeudb/pika/bin/pika -c /fgeudb/pika/conf/pika.conf
ExecStop=/bin/kill -15 $MAINPID
PIDFile=/fgeudb/pika/logs/pika.pid
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
# 重新加载systemd
# systemctl daemon-reload
# 启动Pika服务
# systemctl start pika
# 设置开机自启
# systemctl enable pika
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/pika.service to /etc/systemd/system/pika.service.
# 检查服务状态
# systemctl status pika
● pika.service – Pika Persistent KV Storage
Loaded: loaded (/etc/systemd/system/pika.service; enabled)
Active: active (running) since Fri 2026-04-04 10:30:00 CST; 10s ago
Process: 12345 ExecStart=/fgeudb/pika/bin/pika -c /fgeudb/pika/conf/pika.conf (code=exited, status=0/SUCCESS)
Main PID: 12350 (pika)
CGroup: /system.slice/pika.service
└─12350 /fgeudb/pika/bin/pika -c /fgeudb/pika/conf/pika.conf
8. 安装验证与测试
安装完成后,需要进行验证测试确保Pika正常运行。
使用Redis客户端连接
$ redis-cli -h 192.168.1.51 -p 9221 -a YourSecurePassword123!
# 输出示例如下:
Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
192.168.1.51:9221> ping
PONG
# 查看服务器信息
192.168.1.51:9221> info server
# Server
pika_version:3.4.1
pika_git_sha:abc123def
pika_build_id:1
os:Linux 3.10.0-1160.el7.x86_64 x86_64
arch_bits:64
tcp_port:9221
uptime_in_seconds:600
uptime_in_days:0
# 查看内存信息
192.168.1.51:9221> info memory
# Memory
used_memory:1048576
used_memory_human:1.00M
used_memory_rss:2097152
used_memory_peak:2097152
total_system_memory:34359738368
total_system_memory_human:32.00G
# 查看存储信息
192.168.1.51:9221> info keyspace
# Keyspace
db0:keys=1000,expires=100
基本操作测试
192.168.1.51:9221> set test_key “Hello Pika”
OK
192.168.1.51:9221> get test_key
“Hello Pika”
192.168.1.51:9221> setex temp_key 3600 “Temporary Value”
OK
192.168.1.51:9221> ttl temp_key
(integer) 3598
# Hash类型操作
192.168.1.51:9221> hset user:1001 name “Zhang San”
(integer) 1
192.168.1.51:9221> hset user:1001 age 30
(integer) 1
192.168.1.51:9221> hgetall user:1001
1) “name”
2) “Zhang San”
3) “age”
4) “30”
# List类型操作
192.168.1.51:9221> lpush mylist item1 item2 item3
(integer) 3
192.168.1.51:9221> lrange mylist 0 -1
1) “item3”
2) “item2”
3) “item1”
# Set类型操作
192.168.1.51:9221> sadd myset member1 member2 member3
(integer) 3
192.168.1.51:9221> smembers myset
1) “member1”
2) “member2”
3) “member3”
# Sorted Set类型操作
192.168.1.51:9221> zadd myzset 1 “one” 2 “two” 3 “three”
(integer) 3
192.168.1.51:9221> zrange myzset 0 -1 withscores
1) “one”
2) “1”
3) “two”
4) “2”
5) “three”
6) “3”
# 退出客户端
192.168.1.51:9221> quit
性能测试
$ redis-benchmark -h 192.168.1.51 -p 9221 -a YourSecurePassword123! -c 50 -n 100000 -t set,get
# 输出示例如下:
====== SET ======
100000 requests completed in 3.50 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.90% <= 1 milliseconds 99.95% <= 2 milliseconds 100.00% <= 3 milliseconds 28571.43 requests per second ====== GET ====== 100000 requests completed in 2.80 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.95% <= 1 milliseconds 100.00% <= 2 milliseconds 35714.29 requests per second
至此,Pika数据库的下载和安装已完成。后续可以根据实际业务需求配置主从复制、集群部署和性能调优。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
