【Linux】Redis 离线安装
下载并解压Redis
执行下面的命令下载redis:
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
解压redis:
Terminal window tar xzf redis-6.2.6.tar.gz
移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:
Terminal window mv redis-6.2.6 /usr/local/redis
编译并安装redis
进入redis安装目录,执行make命令编译redis:
Terminal window cd /usr/local/redismake等待make命令执行完成即可。
如果执行make命令报错:cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:
Terminal window yum -y install gcc automake autoconf libtool make如果执行make命令报错:致命错误
/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译: Terminal window make MALLOC=libcmake命令执行完,redis就编译完成了。
执行下面命令安装redis,并指定安装目录
Terminal window make install PREFIX=/usr/local/redisimage-20240617144514525 至此,redis即安装成功。
启动redis
进入redis安装目录,执行下面命令启动redis服务
Terminal window # 启动./bin/redis-server redis.conf# 关闭./bin/redis-cli shutdown此时,可以看到redis服务被成功启动:
image-20240617144725136 但这种启动方式不能退出控制台,如果退出,那么redis服务也会停止。如果想要redis以后台方式运行,需要修改redis的配置文件:
redis.conf。将该配置文件中的daemonize no改为daemonize yes即可:修改完成后,重新执行启动命令启动redis,然后通过下面命令查看redis进程,可以发现redis服务已经被启动了:
Terminal window ps -ef | grep redis
其他设置
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
(设置0.0.0.0 则改为用iptables来控制访问权限)
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:
Terminal window ./bin/redis-cliimage-20240617144907738
此处我们通过下面命令随便set一个字符串类型的值,key是test,value是hello:
Terminal window set test helloimage-20240617145110416
然后通过下面命令get出test这个key的value值:
Terminal window get testimage-20240617145127840
测试没有问题,至此,redis在我们的Linux服务器上就已经安装完成了。
开机自启
Terminal window vim /usr/lib/systemd/system/redis.service
注意:—daemonize no 为必须的,要不然起不来
Terminal window [Unit]Description = Redis ServerAfter = network.target[Service]ExecStart = /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf --daemonize noExecStop = /usr/local/redis/bin/redis-cli -p 6379 shutdownRestart = always[Install]WantedBy = multi-user.target
Terminal window # 重新加载服务systemctl daemon-reload# 开机自动启动systemctl enable redis.service# 取消开机自动启动(卸载服务)systemctl disabled redis.service# 启动redis服务systemctl start redis.service# 查看服务状态systemctl status redis.service# 停止服务systemctl stop redis.service
银河麒麟 V10 SP3 aarch64 离线安装(RPM 方式)
适用环境:银河麒麟 V10 SP3 aarch64(ARM 鲲鹏架构),服务器无外网或需国产化验收。
为什么用官方 RPM 而不是源码编译?
- 麒麟官方 rpm 包自带 systemd 服务、配置文件、路径,开箱即用
- 源码编译需要手动写 service 文件,配置路径也容易找不到
- 等保 / 国产化项目验收,优先选官方适配包
下载安装包
麒麟官方更新站(V10 SP3 aarch64):
https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/updates/aarch64/Packages/redis-7.2.10-1.p01.ky10.aarch64.rpm将 redis-7.2.10-1.p01.ky10.aarch64.rpm 传到服务器 /soft 目录。
安装命令
cd /softrpm -ivh redis-7.2.10-1.p01.ky10.aarch64.rpm如果报依赖缺失:
- 能联网:
yum localinstall redis-7.2.10-1.p01.ky10.aarch64.rpm自动拉取依赖- 纯断网:去同一个 Packages 目录下载提示缺少的依赖包
安装完成后操作
# 查看版本redis-cli --version
# 查看状态systemctl status redis
# 启动 + 开机自启(生产必执行)systemctl start redissystemctl enable redis
# 重启 / 重载配置systemctl restart redis默认路径(重要)
| 用途 | 路径 |
|---|---|
| 配置文件 | /etc/redis/redis.conf(部分版本在 /etc/redis.conf) |
| 数据 rdb | /var/lib/redis/ |
| 日志 | /var/log/redis/redis.log |
| 默认端口 | 6379,默认只允许 127.0.0.1 本地访问 |
基础安全配置(必改)
编辑配置文件:
vi /etc/redis/redis.conf修改以下几项:
# 注释掉 bind(需要外部连接才开,内网环境建议放开)# bind 127.0.0.1
# 关闭保护模式(内网环境才关!公网不要关)protected-mode no
# 设置密码(推荐)requirepass 你的强密码改完重启:
systemctl restart redis防火墙放行(其他机器需要访问 6379 时才执行)
firewall-cmd --add-port=6379/tcp --permanentfirewall-cmd --reload连接测试
# 本地连接redis-cli
# 如果设置了密码redis-cli -a 你的密码
# 测试写入读取set name wangbinget name常见报错:E212 Can’t open file for writing
编辑 redis.conf 时遇到 E212: Can't open file for writing,最常见原因有两个:
原因一:配置文件路径不对
麒麟 V10 官方 redis rpm 包有两种打包形式,配置文件路径可能不同:
# 先执行这条确认文件位置find /etc -name "*redis*.conf"| 路径 | 来源 |
|---|---|
/etc/redis/redis.conf | 源码安装习惯路径 |
/etc/redis.conf | 麒麟官方 rpm 包常见路径 |
如果 find 查到的是 /etc/redis.conf,直接编辑这个:
vi /etc/redis.conf原因二:文件不存在
# 确认 redis 是否安装rpm -qa | grep redis
# 查看 systemd 服务文件,确认它读取哪个配置cat /usr/lib/systemd/system/redis.service | grep ExecStart正常会看到类似 ExecStart=/usr/bin/redis-server /etc/redis.conf,以这个路径为准。
额外排查:文件被锁定
如果文件存在但还报 E212,检查是否有 immutable 属性:
lsattr /etc/redis.conf# 如果有 i 属性,执行chattr -i /etc/redis.conf源码编译安装(想要更高版本 / 自定义参数)
# 安装编译依赖yum install gcc gcc-c++ make -y
# 下载并编译wget https://download.redis.io/releases/redis-7.4.1.tar.gztar xf redis-7.4.1.tar.gzcd redis-7.4.1makemake install源码方式不会自动生成 systemd 服务文件和配置文件,需要自己写。等保 / 国产化验收优先选麒麟官方 RPM 包。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
小王的博客



















