在 Ubuntu/Debian 中安装和配置 Redis

2026-01-15 17:44:16 235

Ubuntu/Debian 中安装和配置 Redis

欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。

 

Redis 是一个开源的内存数据结构存储系统,可用作数据库、缓存和消息代理。它以高性能、灵活的数据结构和丰富的功能集而闻名。本文将详细介绍在 Ubuntu 和 Debian 系统中安装、配置和优化 Redis 的完整流程。

1. 系统准备

更新系统包

# 更新包列表sudo apt update

# 升级已安装的包sudo apt upgrade -y

# 安装必要的依赖sudo apt install curl wget software-properties-common gnupg2 -y

检查现有 Redis

# 检查是否已安装 Redis

redis-cli --version

redis-server --version

# 检查服务状态sudo systemctl status redissudo systemctl status redis-server

# 如果已有旧版本,先备份数据然后卸载sudo systemctl stop redissudo systemctl stop redis-serversudo apt purge redis-server redis-tools -ysudo apt autoremove -ysudo rm -rf /etc/redissudo rm -rf /var/lib/redissudo rm -rf /var/log/redis

2. 安装 Redis

方法1:从官方仓库安装(推荐)

# 添加 Redis 官方仓库

curl -fsSL /gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

# 验证密钥指纹echo "fingers" | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/redis-archive-keyring.gpg --list-keys

# 添加仓库到源列表echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] /deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

# 更新包列表sudo apt update

# 安装 Redissudo apt install redis redis-server redis-tools -y

方法2:从系统仓库安装

# Ubuntu/Debian 系统仓库包含较新的 Redissudo apt updatesudo apt install redis-server redis-tools -y

# 安装管理工具sudo apt install redis-sentinel redis-cli -y

方法3:从源码编译安装

# 安装编译依赖sudo apt install build-essential tcl tcl-tls tcllib -y

# 下载源码cd /tmp

wget /redis-stable.tar.gz

tar -xzf redis-stable.tar.gzcd redis-stable

# 编译和安装

make -j$(nproc)sudo make install

# 运行测试

make test

# 创建系统用户sudo adduser --system --group --no-create-home redissudo mkdir -p /var/lib/redissudo chown redis:redis /var/lib/redissudo chmod 770 /var/lib/redis

3. 初始配置

启动和验证

# 启动 Redis 服务sudo systemctl start redis-serversudo systemctl enable redis-server

# 检查服务状态sudo systemctl status redis-serversudo systemctl is-active redis-server

# 验证安装

redis-cli --version

redis-server --version

# 测试连接

redis-cli ping# 应该返回 PONG

# 基本测试

redis-cli set test "hello"

redis-cli get test

redis-cli del test

查看 Redis 信息

# 查看服务器信息

redis-cli info

redis-cli info server

redis-cli info stats

redis-cli info memory

redis-cli info replication

# 查看配置

redis-cli config get *

redis-cli config get maxmemory

redis-cli config get port

# 查看客户端连接

redis-cli client list

redis-cli info clients

4. 配置文件详解

Redis 配置文件结构

# 主配置文件

/etc/redis/redis.conf

/etc/redis/redis-server.conf

# 哨兵配置文件

/etc/redis/sentinel.conf

# 数据目录

/var/lib/redis/

/var/lib/redis/dump.rdb

/var/lib/redis/appendonly.aof

# 日志目录

/var/log/redis/

/var/log/redis/redis-server.log

# 运行目录

/var/run/redis/

/var/run/redis/redis-server.pid

优化 redis.conf

# 备份原始配置sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup

# 编辑配置文件sudo nano /etc/redis/redis.conf

配置示例:

# 基本设置

daemonize yes

pidfile /var/run/redis/redis-server.pid

port 6379

bind 127.0.0.1 ::1

timeout 300

tcp-keepalive 60

tcp-backlog 511

unixsocket /var/run/redis/redis.sock

unixsocketperm 770

# 常规设置

loglevel notice

logfile /var/log/redis/redis-server.log

databases 16

always-show-logo noset-proc-title yes

proc-title-template "{title} {listen-addr} {server-mode}"

# 快照设置

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

rdb-del-sync-files nodir /var/lib/redis

# 复制设置

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync yes

repl-diskless-sync-delay 5

repl-diskless-load disabled

repl-disable-tcp-nodelay no

replica-priority 100

acllog-max-len 128

# 安全设置

requirepass "YourStrongPassword123!"

masterauth "ReplicationPassword123!"

rename-command FLUSHDB ""

rename-command FLUSHALL ""

rename-command CONFIG ""

# 客户端设置

maxclients 10000

maxmemory 2gb

maxmemory-policy allkeys-lru

maxmemory-samples 5

lazyfree-lazy-eviction no

lazyfree-lazy-expire no

lazyfree-lazy-server-del no

replica-lazy-flush no

lazyfree-lazy-user-del no

oom-score-adj no

oom-score-adj-values 0 200 800

# 持久化设置

appendonly yes

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

# 慢日志设置

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

# 事件通知

notify-keyspace-events ""

# 高级配置hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096

stream-node-max-entries 100

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit replica 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes

jemalloc-bg-thread yes

 

 

8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,8455线路检测中心期待与你一起探索。

 

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图