1. Redis简介与安装准备RedisRemote Dictionary Server是一个开源的、基于内存的键值存储数据库由Salvatore Sanfilippo用C语言开发。它支持多种数据结构包括字符串、哈希、列表、集合、有序集合等常用于缓存、消息队列、会话存储等场景。在Linux系统上安装Redis前我们需要做好以下准备工作确认系统版本建议使用较新的Linux发行版如Ubuntu 18.04、CentOS 7准备root或具有sudo权限的用户账号确保系统可以访问互联网以下载安装包提示生产环境建议使用专用用户运行Redis服务而非直接使用root账户2. 安装依赖环境2.1 安装GCC编译器Redis是用C语言编写的安装前需要确保系统已安装GCC编译器# 检查是否已安装gcc gcc --version # 如果未安装执行以下命令安装 sudo apt update # Ubuntu/Debian sudo apt install -y gcc make # 或者对于CentOS/RHEL sudo yum install -y gcc make2.2 安装其他依赖项# Ubuntu/Debian sudo apt install -y libc6-dev tcl # CentOS/RHEL sudo yum install -y glibc-devel tcl3. 下载与安装Redis3.1 获取Redis源码包建议从官网下载最新稳定版# 创建安装目录 sudo mkdir -p /usr/local/redis cd /usr/local/redis # 下载Redis以6.2.6为例 sudo wget https://download.redis.io/releases/redis-6.2.6.tar.gz sudo tar xzf redis-6.2.6.tar.gz cd redis-6.2.63.2 编译安装Redis# 编译 sudo make # 可选运行测试耗时较长 sudo make test # 安装 sudo make install注意如果make test报错可能是系统时间设置有问题可以尝试同步时间后重试sudo ntpdate pool.ntp.org4. 配置Redis服务4.1 基本配置编辑Redis配置文件sudo cp redis.conf redis.conf.bak # 备份原始配置 sudo nano redis.conf建议修改以下关键配置bind 0.0.0.0 # 允许远程连接生产环境应限制IP protected-mode no # 关闭保护模式 daemonize yes # 以守护进程运行 requirepass yourpassword # 设置访问密码 maxmemory 2gb # 根据服务器内存调整 maxmemory-policy allkeys-lru # 内存满时的淘汰策略4.2 创建systemd服务创建服务文件sudo nano /etc/systemd/system/redis.service添加以下内容[Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Userredis Groupredis ExecStart/usr/local/bin/redis-server /usr/local/redis/redis-6.2.6/redis.conf ExecStop/usr/local/bin/redis-cli shutdown Restartalways [Install] WantedBymulti-user.target创建专用用户并设置权限sudo adduser --system --group --no-create-home redis sudo chown -R redis:redis /usr/local/redis sudo chmod 770 /usr/local/redis5. 启动与管理Redis5.1 启动Redis服务sudo systemctl daemon-reload sudo systemctl start redis sudo systemctl enable redis5.2 验证服务状态sudo systemctl status redis redis-cli ping # 应返回PONG5.3 常用管理命令# 连接Redis redis-cli -a yourpassword # 查看信息 INFO # 查看内存使用 INFO memory # 查看客户端连接 CLIENT LIST # 安全关闭 SHUTDOWN SAVE6. 安全配置建议防火墙设置sudo ufw allow 6379/tcp # Ubuntu sudo firewall-cmd --permanent --add-port6379/tcp # CentOS禁用危险命令 在redis.conf中添加rename-command FLUSHALL rename-command CONFIG rename-command SHUTDOWN 定期备份# 创建备份目录 sudo mkdir /var/redis-backups sudo chown redis:redis /var/redis-backups # 手动备份 redis-cli -a yourpassword SAVE sudo cp /var/lib/redis/dump.rdb /var/redis-backups/dump-$(date %F).rdb7. 常见问题解决7.1 编译错误问题make时报错jemalloc/jemalloc.h: No such file or directory解决make MALLOClibc7.2 连接问题问题无法远程连接Redis检查确认redis.conf中bind设置检查防火墙设置确认protected-mode设置为no检查密码是否正确7.3 内存问题问题Redis占用内存过高解决检查并优化数据结构使用设置适当的maxmemory和淘汰策略考虑使用Redis集群分散负载8. 性能优化建议持久化配置根据需求选择RDB或AOF生产环境建议同时启用两者网络优化# 在redis.conf中调整 tcp-keepalive 60 tcp-backlog 511内核参数调整echo vm.overcommit_memory 1 /etc/sysctl.conf echo net.core.somaxconn 65535 /etc/sysctl.conf sysctl -p监控设置使用INFO命令定期收集指标考虑使用RedisInsight等可视化工具9. 高级配置9.1 主从复制在从节点redis.conf中添加replicaof masterip masterport masterauth master-password9.2 哨兵模式创建sentinel.confport 26379 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel auth-pass mymaster yourpassword sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000启动哨兵redis-sentinel /path/to/sentinel.conf9.3 Redis集群创建多个节点在每个节点的redis.conf中启用集群cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000使用redis-cli创建集群redis-cli --cluster create \ 127.0.0.1:7000 127.0.0.1:7001 \ 127.0.0.1:7002 127.0.0.1:7003 \ 127.0.0.1:7004 127.0.0.1:7005 \ --cluster-replicas 1 -a yourpassword10. 维护与监控10.1 日常维护命令# 查看慢查询 redis-cli --latency redis-cli SLOWLOG GET 10 # 碎片整理 redis-cli MEMORY PURGE # 查看大key redis-cli --bigkeys10.2 日志分析建议在redis.conf中配置logfile /var/log/redis/redis.log loglevel notice定期检查日志sudo tail -f /var/log/redis/redis.log10.3 备份策略RDB备份# 手动触发 redis-cli SAVE # 或 redis-cli BGSAVEAOF备份 确保配置appendonly yes appendfsync everysec自动化备份脚本#!/bin/bash BACKUP_DIR/var/redis-backups DATE$(date %F) redis-cli -a yourpassword SAVE cp /var/lib/redis/dump.rdb $BACKUP_DIR/dump-$DATE.rdb find $BACKUP_DIR -name *.rdb -mtime 7 -delete11. 升级Redis版本停止当前Redis服务备份数据和配置文件下载并编译新版本测试新版本功能逐步在生产环境部署# 示例升级步骤 sudo systemctl stop redis sudo cp /usr/local/redis/redis.conf /tmp/redis.conf.bak cd /usr/local/redis sudo wget https://download.redis.io/releases/redis-6.2.7.tar.gz sudo tar xzf redis-6.2.7.tar.gz cd redis-6.2.7 sudo make sudo make install sudo cp /tmp/redis.conf.bak ./redis.conf sudo systemctl start redis12. 卸载Redis如需完全卸载Redissudo systemctl stop redis sudo systemctl disable redis sudo rm /etc/systemd/system/redis.service sudo systemctl daemon-reload sudo deluser redis sudo rm -rf /usr/local/redis sudo rm /usr/local/bin/redis-*
企业数字化 ERP 产品动态
相关推荐
自我一致性实战:用多次采样投票提升大模型推理稳定性 在Prompt工程里摸爬滚打一段时间之后,只要你对同一道题连续提问两三次,就会遇到那种让人心里发毛的时刻:题目没变、提示词没变、模型也没变,答案却从A漂到B,再漂到C。单次调用拿到的那个答案,本质上是模型在… · 2026/11/2 21:58:32
自我一致性实战:思维链采样、多数投票与置信度分流 自我一致性(Self-Consistency)是提示词工程里少数几个“不需要改模型、不需要训练、加几行采样代码就能见效”的方法。它的做法并不复杂:同一个提示词配上思维链,让模型用非零温度生成多条推理路径,再对最终答案做多数… · 2026/11/2 21:58:32
项目管理知识体系PDF落地:从过程表到WBS与风险登记册 简介:面向备考PMP认证及希望系统梳理项目管理知识框架的读者,这份PDF围绕PMBOK第六版展开,串联五大过程组与十大知识领域,并延伸至项目与产品生命周期、职能型/矩阵型/项目型组织对项目的影响、项目经理的角色与领导力、相关方参与… · 2026/11/2 21:58:32
Unity游戏开发实测:三大开源大模型工程闭环能力对比 1. 这不是模型跑分,是真正在“写游戏”——从零启动一个可运行的3D Unity 项目你点开这个标题,大概率不是想看又一篇“三大模型谁更懂代码”的对比评测。我也不打算给你列个表格打分:DeepSeek V4 Pro 在函数生成上多0.7分,GLM5.3 … · 2026/11/2 22:45:02
AI学术写作助手:智能提纲与文献矩阵技术解析 1. 项目概述:当学术写作遇上AI生产力革命去年帮导师审研究生论文时,有个现象让我印象深刻:超过60%的初稿存在结构雷同问题,而学生们普遍反映"不知道正规论文该怎么写"。这正是"书匠策AI"要解决的核心痛点——… · 2026/11/2 22:45:02
实时数据分析技术架构与实践指南 1. 实时数据分析的行业变革过去五年里,我亲眼见证了数据处理的范式转变。早期在金融行业做风控模型时,我们还在用T1的离线批处理模式,第二天才能看到前一天的交易数据分析结果。而现在,物流公司的调度系统已经能实时追踪每辆货车的… · 2026/11/2 22:45:02
微信小程序 Three.js 3D展示:适配、加载与性能优化 简介:这份源码包面向希望在微信小程序中实现3D模型展示效果的开发者,以three.js为核心,着重解决小程序环境下加载gltf模型、渲染与交互的常见问题,适合已具备小程序基础、想快速验证3D方案的中级开发者参考。压缩包共18个文件、约… · 2026/11/2 22:45:02
小程序 Three.js 3D 渲染实战:GLTF 模型加载与性能优化 简介:面向微信小程序开发者的 three.js 3D 模型展示示例,适合希望在轻量级项目中快速接入三维视图、梳理渲染流程与动画调节思路的初中级开发者。压缩包共 18 个文件,约 258KB,包含 8 个 js 逻辑脚本、5 个 json 配置、2 个 wxss … · 2026/11/2 22:45:02
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
雷达信号调制技术解析:从LFM到伪线性调频原理与应用 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 1:01:15
基于MAX14431与TM4C123的工业SPI隔离电路设计全攻略 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 1:01:15
PLFM_RADAR:相位线性调频雷达信号处理框架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 1:01:15
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18