【工具与中间件】Linux git 与 Docker 下载并配置 redis

远程工具/服务配置之 Linux git下载配置 与 Docker redis

记一次 Rocket Linux 下 git 的下载配置 与 Docker 下载配置 redis

前言

炎炎夏日,是呆在空调房里做项目的好时候。正巧,开了一个项目练手。在搭建项目之前,首先要将一些远程要用到的服务配置好。今日,我就对 Linux 下配置 git 与 Linux docker 配置 redis 的过程做一次记录,希望对有同样操作需求的读者带来一点参考价值。

记录缘由
看似两个功能不相干的工具为啥记录在一起呢?

  • Git:恰巧另一个项目在同一个服务器跑,需要使用Git来拉取并代码并在服务器本地制作镜像。有了这个工具,类似的操作就可在当前项目完成后执行。
  • Redis:项目初期的登录验证就需要用到redis进行令牌缓存。后续其它业务也有可能用到。

属于是一次性将两个工具的下载配置一起记录了。

学习目标

  • 学习RocketLinux下git的下载与配置
  • 学习Docker的redis下载与配置

下面我们开始!

1. Linux Git 下载与配置

1.1 下载Git

我的 Linux 是 Rocket Linux,使用yum下载:

yum -y install git

检查Git版本

git --version

1.2 Git 配置与生成 SSH Key

我们通常需要配置 Git 的 用户名、邮箱等信息,然后生成SSH Key,方便日后拉取项目:

配置用户名、邮箱

git config --global user.name <username>

git config --global user.email <your_email_url>

读者需要根据自己的实际用户名和邮箱替换掉上述命令的尖括号里的内容。

之后,我们可以使用git config --list检查我们的配置信息。

生成SSH Key

ssh-keygen -t rsa -C  "<your_email_url>"

根据我们之前的邮箱信息,我们使用上述命令生成SSH Key。生成的Key在没有指定目录的情况下,默认在:
/root/.ssh/id_rsa.pub

生成的 SSH Key, 我们需要复制其内容并配置到我们的远程仓库平台。最后,我们可以使用 Git Clone 测试一下项目的拉取。

2. Docker-Redis下载与配置

这一小节介绍 使用 Docker 下载 Redis,配置文件编写并指定配置文件运行。

2.1 Docker 拉取 Redis

先走流程,search一下redis;然后拉取latest的redis,最后查看一下镜像:

# 走流程,查看 Redis
docker search redis

# 拉取 latest 版本 Redis
docker pull redis

# 拉取完毕后查看镜像
docker images

为了实现对Redis的灵活配置,方便管理,一般我们习惯Redis自定义配置,通过映射宿主机上的配置文件到容器内部。在这之前,我们要先准备好相关文件及文件夹,例如,在home目录创建相关文件夹:

# 切换到home文件夹
cd /home

# 创建redis存放配置文件的文件夹、存放数据Data的文件夹
mkdir -p docker_redis_conf/config

cd docker_redis_conf/

mkdir data

# 查看文件夹
ls

2.2 Redis配置文件

我们可以先从redis官网-conf文件这里获取我们相应版本的 redis config demo文件。若遇到网络问题无法下载这个配置文件,可在官网里将配置文件demo复制下来再修改:
redis官网-conf文件example

这种方式获取的Redis配置文件里面有大量注释,我们并不需要用到配置文件里面的所有配置,且本身这个配置文件比较长,不利于修改,因此可参考我之前配置过的一个配置文件进行修改:

# 以下指定ip进行访问。一般情况下由于有容器的隔离特性,Docker指定自定义端口号映射加上服务器安全组设置即可限制ip及端口访问,实现一定的安全性,因此此处一般可注释掉,表示该Redis将监听所有可用的网络端口。
# bind 192.168.1.100 10.0.0.1
# 回环地址,表示允许从本地连接,和上述一致,均可注释掉
# bind 127.0.0.1 ::1
# bind 127.0.0.1

# 设置为no表示Redis将不会限制连接到服务器的客户端的IP,即任何IP都可以连接。
protected-mode no

# 默认redis服务端口号
port 6379

# 设置TCP连接的监听队列长度
tcp-backlog 511

# 设置Redis服务器的密码,客户端需要提供这个密码才能连接
requirepass 666666

# 设置客户端连接的超时时间,单位是秒,0表示永不超时
timeout 300

# 设置TCP连接的保活时间
tcp-keepalive 300

# 设置Redis是否以守护进程模式运行
daemonize no

# 设置是否使用外部的进程监控工具来监控Redis
supervised no

# 设置Redis进程的PID文件路径
pidfile /var/run/redis_6379.pid

# 设置日志级别
loglevel notice

# 设置日志文件的路径,空字符串""表示不记录日志到文件
logfile ""

# 设置Redis数据库的数量
databases 30

# 设置是否在启动时显示logo
always-show-logo yes

# 以下为RDB快照的保存条件:多少秒内 至少执行 多少次 写操作,如900秒内至少执行1次写操作
save 900 1
save 300 10
save 60 10000

# 当后台保存RDB快照失败时,是否停止写操作
stop-writes-on-bgsave-error yes

# 设置是否压缩RDB文件
rdbcompression yes

# 设置是否为RDB文件生成校验和
rdbchecksum yes

# 设置RDB文件的名称
dbfilename dump.rdb

# 设置Redis数据库文件的存储目录
dir ./

# 设置从节点是否提供过期的数据
replica-serve-stale-data yes

# 设置从节点是否只读
replica-read-only yes

# 设置是否使用无磁盘复制
repl-diskless-sync no

# 设置是否禁用TCP_NODELAY套接字选项
repl-disable-tcp-nodelay no

# 设置从节点在故障转移时的优先级
replica-priority 100

# 优化内存设置:是否进行懒删除相关
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

# 设置是否使用AOF
appendonly yes

# AOF文件名
appendfilename "appendonly.aof"

# 设置在重写AOF文件时是否禁用fsync
no-appendfsync-on-rewrite no

# 设置AOF文件自动重写的触发百分比
auto-aof-rewrite-percentage 100

# 设置AOF文件自动重写的最小文件大小
auto-aof-rewrite-min-size 64mb

# 设置在加载AOF文件时是否允许截断
aof-load-truncated yes

# 设置AOF文件是否以RDB格式开始
aof-use-rdb-preamble yes

# 设置Lua脚本的执行时间限制
lua-time-limit 5000

# 设置慢查询日志的最大长度
slowlog-max-len 128

# 设置发布/订阅的事件类型,空串""表示禁用该发布订阅功能
notify-keyspace-events ""

# 设置哈希类型使用ziplist编码的最大条目数、哈希类型ziplist编码的最大大小、列表类型ziplist编码的最大大小
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2

# 设置列表压缩的深度
list-compress-depth 0

# 设置集合类型使用整数集合编码的最大条目数
set-max-intset-entries 512

# 设置有序集合使用ziplist编码的最大条目数、ziplist编码的最大值大小
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

# 设置HyperLogLog稀疏表示的最大字节数
hll-sparse-max-bytes 3000

# 设置流类型节点的最大字节数、条目数
stream-node-max-bytes 4096
stream-node-max-entries 100

# 设置是否启用动态哈希
activerehashing yes

# 设置心跳频率
hz 10

# 是否根据负载动态调整心跳频率
dynamic-hz yes

# 设置AOF重写时是否使用增量fsync
aof-rewrite-incremental-fsync yes

# 设置RDB保存时是否使用增量fsync
rdb-save-incremental-fsync yes

2.3 指定配置文件运行

我们将redis配置文件上传、复制,或者vi到我们上面提到的自定义配置config文件夹。之后,指定如下命令运行:

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 13302:6379 --name nutrition_work_redis -v /home/docker_redis_conf/config/redis.conf:/etc/redis/redis.conf -v /home/docker_redis_conf/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass password

稍微解释一下该命令一些参数的具体含义:

  • --restart=always: 指定容器的重启策略。如果容器退出,Docker 将尝试无限次地重启它。

  • --log-opt max-size=100m: 设置容器日志文件的最大大小为 100MB。当日志文件达到这个大小时,Docker 会开始创建新的日志文件。

  • --log-opt max-file=2: 设置容器最多保留的日志文件数量为 2 个。当达到这个数量时,Docker 会开始删除最旧的日志文件。

  • -p 13302:6379: 将容器内部的端口 6379 映射到宿主机的端口13302

  • -v /home/docker_redis_conf/config/redis.conf:/etc/redis/redis.conf: 使用 Docker 的卷将宿主机上的/home/docker_redis_conf/config/redis.conf配置文件挂载到容器内的 /etc/redis/redis.conf路径。自定义配置文件启动

  • -v /home/docker_redis_conf/data:/data: 将宿主机上的/home/docker_redis_conf/data目录挂载到容器内的/data用于持久化 Redis 的数据。

  • --appendonly yes: 启用 Redis 的 AOF

  • --requirepass password: 设置 Redis 服务需要密码才能访问。这里的 password 需要替换为实际我们所需的密码字符串。

2.4 测试连接

完成以上步骤后,我们放开安全组,使用工具测试连接redis:
请添加图片描述

经典的 Redis ping pong 成功,我们的服务器Docker下载与配置Redis完成。

3. 总结

本文主要记录个人的服务器两个工具的下载与配置:Git 和 使用Docker下载Redis。

Git 和 Redis 都是我们开发过程中常用的工具。其中Git的下载与获取SSH Key 比较简单。而Docker中下载并配置Redis步骤相对来说较多,配置文件选项也比较多,相对比较麻烦。

配置Redis的难点在于:

  • 官网的官方配置文件由于网络等原因,经常无法直接获取,需要另辟蹊径。
  • 官网的官方配置文件注释冗杂,要选取自己所需的配置选项需要花费一定的时间。
  • 通过远程工具连接服务器,修改并上传conf文件时,若本地OS为Windows,则需要注意文件格式。建议在Linux端拉取conf文件并vi修改

至此,我们可以愉快地使用服务器拉取项目,以及使用项目里使用该服务器的redis缓存啦!

参考资料

redis官网-conf文件获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值