Linux安装Redis之基本安装、Docker安装

文章目录

基本安装

安装之前检查本机是否已安装gcc库;gcc库安装命令如下:

 yum -y install gcc

下载所需版本安装包
使用wget命令在线下载,或上传已下载的安装包

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

进行安装

# 1、解压;进入下载的tar.gz包所在的目录下进行解压
tar -zxvf redis-5.0.5.tar.gz
# cd命令进入解压成功的redis-5.0.5目录,紧接着执行make编译命令
cd redis-4.0.11
# 编译执行
make
# =======================	
# make install默认情况下,就会把make命令生成在src目录下
#的二进制文件复制一份到/usr/local/bin目录下;又因为
# /usr/local/bin在系统变量 PATH中;所有在任意的目录
# 都可以执行Redis相关的脚本
#=========================
# 但是多数情况下还是习惯将Redis指定到/usr/local/redis下进行安装
make PREFIX=/usr/local/redis install 
	

补充说明
如上操作中执行完 make命令(不是make install)后,会在src目录下多出几个可执行的shell脚本;其中就有最常用的redis-serverredis-cli;此时这些脚本就可以直接对Redis进行相关的操作

...
./redis-server                                 # 启动Redis服务
...
./redis-cli                                    # 启动Redis客户端
...

但是每次操作Redis的相关命令都要进入到安装目录下的src目录,这样很繁琐,所以我们可以make之后再执行make install,就会把make命令生成在src目录下的所有二进制文件复制一份放到/usr/local/bin目录下;又因为 /usr/local/bin在系统变量 PATH中;所有在任意的目录都可以执行Redis相关的脚本。

# make install 之后就可以在任意的目录下执行Redis的脚
[root@iZ2ze9n36uysr6hcdfql5rZ ~]# redis-server

但是多数情况下,习惯在执行 make install 命令时指定Redis的安装目录,通常安装在 /usr/local/redis 下

Docker安装

拉取镜像

  • docker pull redis:拉取最新版本的Redis镜像
  • docker pull redis:6.0.8:拉取对应版本的Redis镜像
# 拉取最新版的Redis镜像
[root@VM-8-3-opencloudos ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
360eba32fa65: Pull complete 
64b323c8825b: Pull complete 
383536099eae: Pull complete 
e3f0c12dcc8e: Pull complete 
2d2142a35b4d: Pull complete 
b4cada01e6a7: Pull complete 
Digest: sha256:f92a0be0ba8c085e6a5e2d2bea386365443485bcd67ced5ca8ddcdacdd4656d2
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
# 查看拉取的Redis镜像信息
[root@VM-8-3-opencloudos ~]# docker image ls
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
redis           latest    39ac5829bade   13 days ago    138MB

宿主机创建redis.conf文件
docker run -v /app/redis/conf/redis.conf:/etc/redis/redis.conf即数据卷挂载的时候默认创建的是目录;所以在宿主机的/app/redis/conf目录下提前创建好redis.conf文件。

启动容器

扫描二维码关注公众号,回复: 17241566 查看本文章

注意:要清楚的知道-v /app/redis/conf/redis.conf:/etc/redis/redis.conf这一参数进行数据卷的挂载动作时,宿主机上的空白redis.conf文件会完全覆盖掉容器中的redis.conf

docker run -p 6379:6379 \
--privileged=true \
--name myRedis \
-v /app/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d 39ac5829bade \
redis-server /etc/redis/redis.conf

docker run -p 6379:6379:容器中的6379映射到宿主机的6379端口;

--privileged=true:使用该参数,container内的root拥有真正的root权限

--name:给容器起的名字

-v /app/redis/redis.conf:/etc/redis/redis.conf:数据卷映射,容器中/etc/redis/redis.conf文件映射到宿主机的/app/redis/redis.conf

-v /app/redis/data:/data:还是数据卷映射,容器中的/data目录挂载给了宿主机的/app/redis/data

-d imageID:-d就是后台启动,使用镜像的ID和名称都是可以的

接着最后就是启动参数(如果还记得之前常用的/bin/bash,就不难理解了):redis-server /etc/redis/redis.conf:docker run 最后是可以跟上容器中的相关指令,之前经常使用docker run -it imageID /bin/bash使容器的交互界面不至于闪退;现在它同样是容器中的某条具体命令,意在让redis不是无配置启动,而是按照这个redis.conf的配置启动

在这里插入图片描述
进入容器验证容器内的redis.conf文件内容确实为空白,已被完全覆盖

# 进入容器内部
[root@VM-8-3-opencloudos conf]# docker exec -it 71d8 /bin/bash

在这里插入图片描述

这种情况,就要求已备份redis.conf;备份的思路:前期使用docker run命令时不进行数据卷的挂载(不指定-v)正常启动以后,使用docker cp命令复制一份容器内的redis.conf文件到宿主机的目标路径下。最后删除当前容器,使用上面完整的命令根据镜像重新创建新的容器

至此,Docker安装Redis就结束了,下面是某些使用小案例
docker exec 连接redis客户端

[root@VM-8-3-opencloudos /]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                              NAMES
3dee1db74319   39ac5829bade   "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes   6379/tcp, 0.0.0.0:6379->6379/tcp   myRedis
[root@VM-8-3-opencloudos /]# docker exec -it 3dee1db74319 redis-cli
127.0.0.1:6379> 

设置密码后,再次连接客户端需要输入密码
因为之前docker run的时候对redis.conf文件进行了数据卷的映射,所以直接走宿主机的/app/redis/redis.conf中进行相关的配置

[root@VM-8-3-opencloudos conf]# cat redis.conf
requirepass Redis@123

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43859011/article/details/133080832
今日推荐