核心内容摘要
当“小乔翻白眼流口水流眼泪”成为一种流行,我们看到了什么?
前言Redis作为高性能的键值对内存数据库在现代Web架构中扮演着重要角色。
本文将提供从源码编译到包管理器安装的完整方案包含主从复制、持久化配置、性能优化等生产级设置助你快速搭建高可用的Redis服务。
安装前准备系统要求检查bash检查系统版本和架构cat /etc/os-releaseuname -m # x86_64或aarch64检查内存大小建议至少2GBfree -h
环境准备bash安装编译依赖sudo apt update # Ubuntu/Debiansudo apt install build-essential tcl -ysudo yum install gcc make tcl -y # CentOS/RHEL
安装方法对比方案对比表方法 优点 缺点 适用场景源码编译 版本灵活最新特性 步骤复杂需手动配置 开发测试、特定版本需求包管理器 简单快捷自动管理 版本可能较旧 生产环境、快速部署Docker 环境隔离一键部署 性能略有损耗 容器化环境
方法一源码编译安装最新稳定版下载与解压bash创建安装目录mkdir -p /opt/rediscd /opt/redis下载Redis
x稳定版wget https://download.redis.io/redis-stable.tar.gztar -xzf redis-stable.tar.gzcd redis-stable目录结构预览textredis-stable/├── src/ # 源代码├── tests/ # 测试文件├── redis.conf # 配置文件模板└── README.md
编译与安装bash编译Redis需要gcc编译器make -j$(nproc) # 使用所有CPU核心加速编译测试编译结果可选但推荐make test安装到系统目录sudo make install编译过程示意图textCC Makefile.depCC adlist.oCC quicklist.oCC ae.o…约30个文件LINK redis-serverINSTALL redis-sentinelINSTALL redis-cli
验证安装bash查看版本redis-server --version输出Redis server v
7.
x shaxxxxxx bits64启动Redis服务端redis-server成功启动标志text…Ready to accept connectionsDB loaded from disk:
001 seconds
方法二包管理器安装推荐生产环境Ubuntu/Debian 安装bash添加官方PPA获取最新版本sudo add-apt-repository ppa:redislabs/redis -ysudo apt update安装Redissudo apt install redis-server -y验证安装redis-cli ping返回PONGCentOS/RHEL 安装bash启用EPEL仓库sudo yum install epel-release -y安装Redissudo yum install redis -y或使用Remi仓库更新版本sudo yum install https://rpms.remirepo.net/enterprise/remi-release-
rpm -ysudo yum --enablereporemi install redis -y
服务管理bash启动服务sudo systemctl start redis # Ubuntu
1
04/CentOS 7或sudo service redis start # 旧版本设置开机自启sudo systemctl enable redis查看服务状态sudo systemctl status redis服务状态正常显示text● redis.service - Redis In-Memory Data StoreLoaded: loaded (/lib/systemd/system/redis.service; enabled; vendor preset: enabled)Active: active (running) since Mon
10:00:00 CST; 1min ago
基础配置与优化配置文件位置bashUbuntu/Debian/etc/redis/redis.confCentOS/RHEL/etc/redis.conf源码安装默认/opt/redis/redis-stable/redis.conf
关键配置项详解bash备份原配置sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup编辑配置文件sudo nano /etc/redis/redis.conf必须修改的配置ini绑定地址生产环境建议具体IPbind
127.
0.
1 # 仅本地访问或 bind
0.
0.
0 # 允许所有IP需配合防火墙保护模式外网访问需关闭protected-mode no端口设置port 6379守护进程模式后台运行daemonize yes日志文件logfile /var/log/redis/redis-server.log数据持久化目录dir /var/lib/redis最大内存设置maxmemory 2gbmaxmemory-policy allkeys-lru认证密码生产环境必须requirepass YourStrongPassword123!
数据目录设置bash创建数据目录sudo mkdir -p /var/lib/redissudo chown redis:redis /var/lib/redis # Ubuntu或 sudo chown redis:redis /var/lib/redis # CentOS创建日志目录sudo mkdir -p /var/log/redissudo chown redis:redis /var/log/redis
Redis 持久化配置RDB 快照配置ini在redis.conf中添加save 900 1 # 900秒内至少1个key变化save 300 10 # 300秒内至少10个key变化save 60 10000 # 60秒内至少10000个key变化RDB文件名称dbfilename dump.rdb压缩RDB文件rdbcompression yes
AOF 追加日志配置ini启用AOFappendonly yesAOF文件名appendfilename “appendonly.aof”同步策略平衡性能与安全appendfsync everysec自动重写AOF文件auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb
混合持久化Redis
0iniRDBAOF混合模式aof-use-rdb-preamble yes
安全加固防火墙配置bashUbuntu UFWsudo ufw allow from
192.
168.
0/24 to any port 6379sudo ufw reloadCentOS Firewalldsudo firewall-cmd --permanent --add-rich-rule‘rule family“ipv4” source address“
192.
168.
0/24” port protocol“tcp” port“6379” accept’sudo firewall-cmd --reload
重命名危险命令ini禁用或重命名危险命令rename-command FLUSHDB “”rename-command FLUSHALL “”rename-command CONFIG “CONFIG-SECURE”rename-command SHUTDOWN “SHUTDOWN-SECURE”
TLS加密Redis
0bash生成TLS证书openssl genrsa -out redis.key 2048openssl req -new -key redis.key -out redis.csropenssl x509 -req -days 365 -in redis.csr -signkey redis.key -out redis.crt配置文件启用TLStls-port 6379tls-cert-file /path/to/redis.crttls-key-file /path/to/redis.key
性能测试与监控基准测试bash使用redis-benchmark测试redis-benchmark -h
127.
0.
1 -p 6379 -a YourPassword -t set,get -n 100000 -c 100测试结果示例 SET 100000 requests completed in
00 seconds100 parallel clients3 bytes payloadkeep alive:
1
99% 1 milliseconds
9
99 requests per second
监控指标查看bash连接Redisredis-cli -a YourPassword查看信息INFOINFO memory # 内存信息INFO stats # 统计信息INFO replication # 复制信息INFO persistence # 持久化信息退出exit
安装RedisInsight可视化工具bash下载并安装wget https://download.redisinsight.redis.com/latest/redisinsight-linux
tar.gztar -xzf redisinsight-linux
tar.gzcd redisinsight-linux
/redisinsight-linux64访问 http://localhost:5540
主从复制配置主服务器配置inimaster.confbind
192.
168.
100port 6379requirepass MasterPassword123masterauth SlavePassword
从服务器配置inislave.confbind
192.
168.
101port 6379requirepass SlavePassword456指定主服务器slaveof
192.
168.
100 6379masterauth MasterPassword123只读模式slave-read-only yes
启动与验证bash分别启动主从redis-server /path/to/master.confredis-server /path/to/slave.conf检查复制状态redis-cli -h
192.
168.