🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:C/C++面试通关【精讲】 优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

一、下载安装包

二、编译源码

三、运行

四、开机自启动

五、远程连接

5.1 安装 redis 客户端

 5.2 远程连接

六、参考文献


本文适合初学 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


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐