1. 官网下载redis文件
2. 校验安装依赖
2.1 安装系统默认版本gcc
如果是: command not found,则需要先安装gcc。
安装默认版本gcc(安装过程需要输入,一直输入【y】即可):
yum install gcc-c++
出现【Complete!】即安装成功。
2.2 升级gcc版本
CentOS7安装有默认GCC环境,默认4.8.5版本!编译redis-6.x,要求C5.3以上编译器,否则会遇到大量的错误。
主要原因是从 redis-6.x 开始的多线程代码依赖C标准库中的新增类型_Atomic。但是注意gcc从 4.9 版本才开始
正式和完整地支持stdatomic(gcc-4.8.5部分支持)。centos7默认的gcc版本为:4.8.5 < 5.3无法编译。
需要把gcc升级到9版本:
yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils # 设置环境变量: scl enable devtoolset-9 bash # 验证版本 gcc -v
3. 解压编译安装
# 解压下载文件 tar -xzvf redis-6.2.6.tar.gz # 进入解压目录 cd /home/redis-6.2.6 # 编译并安装在指定目录 make install PREFIX=/usr/local/redis
如果遇到报错:
zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: 没有那个文件或目录 50 | #include <jemalloc/jemalloc.h> | ^~
解决方法:
# make 时指定分配器为libc make MALLOC=libc # 再执行编译并安装在指定目录 make install PREFIX=/usr/local/redis
4. 修改配置redis.conf
cp /home/redis-6.2.6/redis.conf /usr/local/redis/bin/
修改配置文件,使redis服务以守护进程的方式运行
cd /usr/local/redis/bin/ vi redis.conf
daemonize no 改成 daemonize yes ,然后保存并退出即可
4.2 设置密码
4.3 绑定ip(可选)
5. 启动redis服务并测试
./redis-server redis.conf
查看启动是否成功
ps -ef |grep redis
5.2 测试安装是否成功
#进入安装目录 cd /usr/local/redis/bin ./redis-cli -p 6379
使用ping命令,若返回pong表示安装成功
测试set,get
5.3 redis开机自启配置
# 进入/lib/systemd/system/目录 cd /lib/systemd/system/ # 创建redis.service文件 vim redis.service
[Unit] Description=redis-server After=network.target [Service] Type=forking # ExecStart需要按照实际情况修改成自己的地址 ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
设置redis开机启动
systemctl enable redis.service
ps -ef|grep redis # 杀死redis线程 kill -9 pid
启动redis服务
systemctl start redis.service
查看服务状态
systemctl status redis.service
其他redis命令
# 停止服务 systemctl stop redis.service # 取消开机自动启动(卸载服务) systemctl disabled redis.service
6.开放防火墙端口
# 查看防火墙状态 systemctl status firewalld # 查看开放的端口 firewall-cmd --query-port=6379/tcp # 添加端口 firewall-cmd --zone=public --add-port=6379/tcp --permanent # 重载防火墙 firewall-cmd --reload # 再次查看端口是否已经开放 firewall-cmd --query-port=6379/tcp
原文链接:https://blog.csdn.net/qq_29864051/article/details/123717860