部署Redis的2种方式(非常详细,新手必看)
Redis 数据库的安装方式有两种:DNF 软件包管理器一键安装和手动编译安装源码包,其中源码包可以去 Redis 官网下载。
通过 DNF 安装的 Redis 数据库,其主要文件/目录的安装位置如下:
手动编译源码包:
启动 Redis 数据库的命令太长,而且也不是通过常规的 systemctl start|stop|restart|status redis 命令管理服务,这里可以将其优化一下:
在企业环境中,一台服务器中会部署很多服务,这么多服务的程序文件和配置文件,如果不进行规整管理的话,会变得错综复杂。建议大家通过编译编代码的方式进行安装,这样可以将程序文件集中到一起,容易维护。
通过软件包管理器一键安装的方式也会自动规整文件,不过是将某一类文件归到同一个文件夹下,例如,/etc/ 目录专门存放各种服务的配置文件,但凡安装某个服务,软件包管理器都会将该服务的配置文件安装到 /etc/ 目录下。
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 数据库安装完成后可通过下列命令进行管理:
- systemctl start redis:启动服务;
- systemctl stop redis:停止服务;
- systemctl restart redis:重启服务;
- systemctl enable redis:开机自启;
- systemctl disable redis:关闭开机自启;
- systemctl status redis:查看服务状态。
通过 DNF 安装的 Redis 数据库,其主要文件/目录的安装位置如下:
- 主配置文件:/etc/redis.conf;
- 服务端启动命令:/usr/bin/redis-server;
- 客户端命令:/usr/bin/redis-cli;
- 性能测试工具:/usr/bin/redis-benchmark;
- AOF文件修复工具:/usr/bin/redis-check-aof;
- RDB文件检查工具:/usr/bin/redis-check-rdb;
- RDB文件默认存储目录:/var/lib/redis,RDB持久化存储功能可以将 Redis 中所有数据生成快照并以二进制文件的形式保存到硬盘中。
- 日志文件目录:/var/log/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/ 目录下。