Ubuntu 源码安装 redis 数据库,设置开启自启动
CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 关注专栏:C/C++面试通关【精讲】 优质好文持续更新中……🚀🚀🚀
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
目录
本文适合初学 Redis,并想要实践下的同学,本文是在 Ubuntu 20.04 上源码安装 Redis。
一、下载安装包
首先,我们需要到官网去下载源码包,点击进入官网,点击 Download 7.0.10 下载即可,如下图红框所示。
或者执行如下命令直接下载。
node2@node2:~$ wget https://github.com/redis/redis/archive/7.0.10.tar.gz
--2023-04-05 22:18:59-- https://github.com/redis/redis/archive/7.0.10.tar.gz
正在解析主机 github.com (github.com)... 20.205.243.166
正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://codeload.github.com/redis/redis/tar.gz/refs/tags/7.0.10 [跟随至新的 URL]
--2023-04-05 22:18:59-- https://codeload.github.com/redis/redis/tar.gz/refs/tags/7.0.10
正在解析主机 codeload.github.com (codeload.github.com)... 20.205.243.165
正在连接 codeload.github.com (codeload.github.com)|20.205.243.165|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 3017600 (2.9M) [application/x-gzip]
正在保存至: “7.0.10.tar.gz”
7.0.10.tar.gz 100%[==================================================================================>] 2.88M 20.0KB/s 用时 1m 50s
2023-04-05 22:20:50 (26.9 KB/s) - 已保存 “7.0.10.tar.gz” [3017600/3017600])
node2@node2:~$
下载完成后执行如下命令解压源码包。
node2@node2:~$ tar -zxvf 7.0.10.tar.gz
二、编译源码
安装编译需要的环境。
node2@node2:~$ sudo apt install build-essential -y
执行如上命令安装编译 C/C++ 依赖的软件包,例如:gcc、g++、make等。
执行如下命令编译源码。
node2@node2:~/redis-7.0.10$ sudo make -j4
如果执行命令 sudo make 出现错误:
cd src && make all
make[1]: 进入目录“/usr/local/redis-7.0.10/src”
CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: 没有那个文件或目录
50 | #include <jemalloc/jemalloc.h>
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:403:adlist.o] 错误 1
make[1]: 离开目录“/usr/local/redis-7.0.10/src”
make: *** [Makefile:6:all] 错误 2
针对上述错误,执行如下命令重新编译。
node2@node2:~$ sudo make MALLOC=libc
安装 redis,执行如下命令。
node2@node2:~/redis-7.0.10$ sudo make PREFIX=/usr/local/redis install
安装 redis 到 /usr/local/redis 目录下。
三、运行
执行如下命令将 redis-server 和 redis-cli 放置到系统路径(/usr/bin)下。
node1@node1:~$ ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
node1@node1:~$ ln -s /usr/local/redis/bin/redis-server /usr/bin/redis-server
上述命令是建立软连接,让 /usr/bin/redis-cli 指向 /usr/local/redis/bin/redis-cli,让 /usr/bin/redis-server 指向 /usr/local/redis/bin/redis-server,和 Windows 创建快捷方式一样的道理。
配置 redis-server,将源码目录下的 redis.conf 配置文件拷贝到安装目录,执行如下命令。
node2@node2:~$ sudo cp redis-7.0.10/redis.conf /usr/local/redis/
修改 redis.conf 文件,如下所示。
#(1)修改 1
# 注释掉 bind 127.0.0.1 -::1 允许远程连接
#bind 127.0.0.1 -::1
# (2)修改2
# 将 daemonize no 修改为 daemonize yes,设置后台运行
daemonize yes
# (3)修改3
# 指定 log 文件路径
logfile "/var/log/redis-server.log"
# (4)修改4
# 设置登录密码
requirepass 123456
启动 redis-server,执行如下命令。
node2@node2:~$ sudo redis-server /usr/local/redis/redis.conf
node2@node2:~$ ps -ef | grep redis
root 9672 1 0 21:27 ? 00:00:00 redis-server *:6379
node2 9695 4113 0 21:28 pts/1 00:00:00 grep --color=auto redis
node2@node2:~$
通过客户端访问,执行如下命令。
node1@node1:~$ redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
auth 后面是配置文件 redis.conf 中设置的登录密码,输入 ping,返回 PONG 表示连接 Redis 服务器成功。
关闭 redis-server,执行如下命令。
node2@node2:~$ redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> shutdown
not connected>
node2@node2:~$ ps -ef | grep redis
node2 10071 4113 0 21:29 pts/1 00:00:00 grep --color=auto redis
node2@node2:~$
四、开机自启动
拷贝启动脚本 redis_init_script 到目录 /etc/init.d/redis 下,执行命令如下所示。
node2@node2:~$ sudo cp redis-7.0.10/utils/redis_init_script /etc/init.d/redis
修改 /etc/init.d/redis 文件如下所示。
REDISPORT=6379
#EXEC=/usr/local/bin/redis-server
# 修改 redis-server 路径,之前的配置已经放置到系统路径 /usr/bin 下。
EXEC=/usr/bin/redis-server
# 修改 redis-cli 路径,之前的配置已经放置到系统路径 /usr/bin 下。
#CLIEXEC=/usr/local/bin/redis-cli
CLIEXEC=/usr/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
在上述代码中,CONF 表示读取的配置文件的路径,需要在 /etc 目录下创建 redis 目录,并将 redis.conf 拷贝到 /etc/redis/ 下重命名为 6379.conf,执行如下命令配置。
node2@node2:~$ sudo mkdir /etc/redis
node2@node2:~$ sudo cp /usr/local/redis/redis.conf /etc/redis/6379.conf
node2@node2:~$
将 redis 加入到开启自启动,并启动 redis 服务,执行命令如下所示。
node2@node2:~$ sudo update-rc.d -f redis defaults
node2@node2:~$ systemctl start redis
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
启动“redis.service”需要认证。
Authenticating as: node2,,, (node2)
Password:
==== AUTHENTICATION COMPLETE ===
node2@node2:~$ systemctl status redis
● redis.service - LSB: Redis data structure server
Loaded: loaded (/etc/init.d/redis; generated)
Active: active (running) since Thu 2023-04-06 22:37:05 CST; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 15975 ExecStart=/etc/init.d/redis start (code=exited, status=0/SUCCESS)
Tasks: 5 (limit: 4577)
Memory: 2.1M
CGroup: /system.slice/redis.service
└─15977 /usr/bin/redis-server *:6379
4月 06 22:37:05 node2 systemd[1]: Starting LSB: Redis data structure server...
4月 06 22:37:05 node2 redis[15975]: Starting Redis server...
4月 06 22:37:05 node2 systemd[1]: Started LSB: Redis data structure server.
node2@node2:~$
五、远程连接
5.1 安装 redis 客户端
点击进入下载 redis客户端,选择对应文件下载即可。
5.2 远程连接
安装完成后,点击 New Connection ,填写配置如下所示。
点击 OK 后即可连接成功,界面如下所示。
六、参考文献
[1] Ubuntu下运行免安装Redis及Redis开机自动启动配置 - 腾讯云开发者社区-腾讯云
[2] https://www.pianshen.com/article/98312330864/
[3] https://blog.csdn.net/weixin_44642403/article/details/109539410
[4] https://www.cnblogs.com/cndarren/p/12359302.html
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞
更多推荐
所有评论(0)