首页 > 编程笔记 > MySQL笔记 阅读:14

部署Redis的2种方式(非常详细,新手必看)

Redis 数据库的安装方式有两种:DNF 软件包管理器一键安装和手动编译安装源码包,其中源码包可以去 Redis 官网下载。

DNF软件包管理器一键安装Redis

Redis 服务启动之后默认占用 6379 端口。DNF 软件包管理器一键安装方法非常简单,只需要执行一条命令即可:
dnf install redis
示例如下:
[root@linux ~]# cat /etc/centos-release  ##查看操作系统版本
Rocky Linux release 8.5 (Green Obsidian)

[root@linux ~]# dnf install redis
依赖关系解决
======================================================================================
软件包          架构          版本                                仓库         大小
======================================================================================
安装:
redis           x86_64        5.0.3-5.module+el8.5.0+657+2674830e  appstream    926 k

启用模块流:
redis           5

事务概要
======================================================================================
安装  1 软件包

---省略部分内容---
已安装:
redis-5.0.3-5.module+el8.5.0+657+2674830e.x86_64
完毕!

[root@linux ~]# systemctl start redis  ##启动 Redis 服务
[root@linux ~]# netstat -anpt | grep 6379  ##查看 Redis 运行进程
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN       3145/redis-server 1
[root@linux ~]#
Redis 数据库安装完成后可通过下列命令进行管理:
通过 DNF 安装的 Redis 数据库,其主要文件/目录的安装位置如下:

手动编译安装Redis源码包

手动编译安装源码包需要依赖编译环境,这些依赖环境可以通过 DNF 软件包管理器一键安装:
dnf install gcc gcc-c++ make
将编译 Redis 源码包的依赖环境准备好,示例如下:
[root@linux ~]# dnf install gcc gcc-c++ make
软件包 gcc-8.5.0-3.el8.x86_64 已安装
软件包 gcc-c++-8.5.0-3.el8.x86_64 已安装
软件包 make-1:4.2.1-10.el8.x86_64 已安装
依赖关系解决
============================================================================
软件包          架构          版本                     仓库             大小
============================================================================
升级:
cpp            x86_64        8.5.0-4.el8_5            appstream        10 M
gcc            x86_64        8.5.0-4.el8_5            appstream        23 M
gcc-c++        x86_64        8.5.0-4.el8_5            appstream        12 M
gcc-gdb-plugin x86_64        8.5.0-4.el8_5            appstream        117 k
libgcc         x86_64        8.5.0-4.el8_5            baseos           78 k
libgomp        x86_64        8.5.0-4.el8_5            baseos          205 k
libstdc++      x86_64        8.5.0-4.el8_5            baseos          452 k
libstdc++-devel x86_64       8.5.0-4.el8_5            appstream        2.0 M

事务概要
============================================================================
升级 8 软件包

---省略部分内容---
验证   : libstdc++-8.5.0-4.el8_5.x86_64  15/16
验证   : libstdc++-8.5.0-3.el8.x86_64   16/16

升级:
cpp-8.5.0-4.el8_5.x86_64  gcc-8.5.0-4.el8_5.x86_64
gcc-c++-8.5.0-4.el8_5.x86_64 gcc-gdb-plugin-8.5.0-4.el8_5.x86_64
libgcc-8.5.0-4.el8_5.x86_64  libgomp-8.5.0-4.el8_5.x86_64
libstdc++-8.5.0-4.el8_5.x86_64 libstdc++-devel-8.5.0-4.el8_5.x86_64

完毕!

手动编译源码包:
[root@linux ~]# cd /opt/
[root@linux opt]# ll
总用量 2420
-rw-r--r--. 1 root root 2476542 3月 2 22:04 redis-6.2.6.tar.gz

##对源码包进行解压缩
[root@linux opt]# tar xf redis-6.2.6.tar.gz

##进入解压后的目录中
[root@linux opt]# cd redis-6.2.6/

##进行编译与安装操作,结合逻辑与(&&)符号可以通过一条命令搞定
## 选项 PREFIX= 用来指定 Redis 的安装目录
[root@linux redis-6.2.6]# make && make install PREFIX=/usr/local/redis
make[1]: 进入目录 “/usr/local/redis-6.2.6/src”
CC Makefile.dep
----省略部分内容----
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
make[1]: 离开目录 “/opt/redis-6.2.6/src”

##没有任何报错,到这一步就算安装成功了
[root@linux src]# cd ..

##将 Redis 的配置文件拷贝到/usr/local/redis/目录下
[root@linux redis-6.2.6]# cp redis.conf /usr/local/redis/

##给大家看看编译安装后的目录是什么样子。
[root@linux redis-6.2.6]# ls /usr/local/redis/
bin  redis.conf
[root@linux redis-6.2.6]# ls /usr/local/redis/bin/
redis-benchmark  redis-check-rdb  redis-sentinel  redis-check-aof  redis-cli  redis-server

##编辑 Redis 配置文件,将 daemonize no 配置改成 daemonize yes,保存即可
[root@linux redis-6.2.6]# vim /usr/local/redis/redis.conf
----省略部分内容----
daemonize yes  ##注:在配置文件的第 258 行

##修改完成后,就要启动 Redis 服务了
##在使用 redis-server 命令启动 Redis 服务时,需要指定配置文件,最后的 & 符号表示后台运行
[root@localhost redis]# cd /usr/local/redis/
[root@localhost redis]# ./bin/redis-server redis.conf &
[1] 125191    ##这里的提示信息指的是 Redis 进程的 PID 号

##查看 Redis 进程
[root@localhost redis-6.2.6]# ps -ef | grep redis
root      125192      1  0 11:24 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root      125200  119752  0 11:25 pts/1    00:00:00 grep --color=auto redis

##查看 6379 端口是否被 Redis 占用
[root@localhost redis-6.2.6]# netstat -anpt | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN       125192/redis-server
tcp6       0      0 :::6379                 :::*                    LISTEN       125192/redis-server
至此,通过手动编译源码包的方式安装 Redis 数据库就完成了,用这种方式安装可以自定义程序文件的位置,我们将所有的程序文件及配置文件都存放到 /usr/local/redis/ 目录中,维护起来比较简单,在安装时大家也可以按个人习惯自定义安装位置。

启动 Redis 数据库的命令太长,而且也不是通过常规的 systemctl start|stop|restart|status redis 命令管理服务,这里可以将其优化一下:
[root@localhost ~]# vim /usr/lib/systemd/system/redis.service

[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
##注意 Redis 命令文件的位置,请根据实际安装位置进行修正
[Service]
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf --protected-mode no
ExecStop=/usr/local/redis/bin/redis-cli shutdown
#Restart=always
Type=forking
#User=redis
#Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

[root@localhost ~]# systemctl daemon-reload    ##使配置生效
[root@localhost ~]# systemctl start redis     ##启动 Redis 服务
[root@localhost ~]# systemctl status redis    ##查看 Redis 服务状态
● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
   Active: active (running) since
----省略部分内容----

##再次查看 Redis 进程
[root@localhost ~]# ps -ef | grep redis
root      126861      1  0 13:31 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root      126876 119752  0 13:31 pts/1    00:00:00 grep --color=auto redis

##再次查看 6379 端口是否被 Redis 占用
[root@localhost ~]# netstat -anpt | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN       126861/redis-server
tcp6       0      0 :::1:6379                :::*                    LISTEN       126861/redis-server

##将 Redis 服务设置为开机自启动
[root@localhost ~]# systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.

##将 Redis 服务设置为禁止开机自启动
[root@localhost ~]# systemctl disable redis
Removed symlink /etc/systemd/system/multi-user.target.wants/redis.service.

##编辑 /etc/profile/ 文件,在文件结尾添加一行配置,将 Redis 的所有命令添加到 PATH 变量中
##这样做的好处是可以在系统的任意位置都能执行 Redis 命令
[root@localhost ~]# vim /etc/profile
----省略部分内容----
PATH=/usr/local/redis/bin/:$PATH

##使其生效
[root@localhost ~]# source /etc/profile

##随意找个位置执行 Redis 命令,可以使用 Tab 键进行命令补全
[root@localhost ~]# redis-server --version
Redis   server  v=6.2.6  sha=00000000:0  malloc=jemalloc-5.1.0  bits=64  build=f303b5a6203c0b94
这样设置之后,不论是启动还是停止等操作都可以通过常规的 systemctl start|stop|restart|status redis 命令管理服务,同时还将 Redis 服务的各种命令全局化了。

在企业环境中,一台服务器中会部署很多服务,这么多服务的程序文件和配置文件,如果不进行规整管理的话,会变得错综复杂。建议大家通过编译编代码的方式进行安装,这样可以将程序文件集中到一起,容易维护。

通过软件包管理器一键安装的方式也会自动规整文件,不过是将某一类文件归到同一个文件夹下,例如,/etc/ 目录专门存放各种服务的配置文件,但凡安装某个服务,软件包管理器都会将该服务的配置文件安装到 /etc/ 目录下。

相关文章