使用Docker
安装组件,就比在操作系统上直接安装要方便多了,而且又便于管理。下面仍然是以JDK
,MySQL
和Redis
举例,实际上在Docker
中,无论你想安装什么都是一样的命令,只需要给个组件名和版本号即可(当然还得有真实存在的镜像才行),非常方便,不过瓶颈往往在于镜像源。
在上面的脚本中,笔者给出了写文章时还存活的镜像地址。不保证一直可用,失效的时候再去网上找找看,修改配置文件即可。
2.1 安装MySQL
直接run
即可,注意备份实例中的数据和配置,备份数据所在的文件夹需要保证存在
# 建立数据和备份文件所在的目录
sudo mkdir -p /data/mysql/data
sudo mkdir -p /data/mysql/conf
# 指定mysql实例运行的名字,端口号映射等
docker run --name mysql-8.4 \
-e MYSQL_ROOT_PASSWORD=your_own_password \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql/conf.d \
-d -p 3306:3306 mysql:8.4
# 需要进入
MySQL8.4
似乎不需要写任何配置文件就可正常使用。
2.2 安装Redis
直接run
即可
sudo mkdir -p /data/redis/data
sudo mkdir -p /data/redis/conf
docker run --name redis-7.0.15 \
-v /data/redis/data:/data \
-v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-d -p 6379:6379 redis:7.0.15
其中,redis.conf
的内容就是之前在操作系统上直接安装Redis
时的配置文件,去掉注释后如下:
# bind 127.0.0.1 -::1
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /run/redis/redis-server.pid
loglevel notice
logfile /var/log/redis/redis-server.log
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /var/lib/redis
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-diskless-sync-max-replicas 0
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
# 注意这里换成你自己的密码
requirepass {your_own_password}
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
aof-timestamp-enabled no
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-listpack-entries 512
hash-max-listpack-value 64
list-max-listpack-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-listpack-entries 128
zset-max-listpack-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
在运行实例之前需要在/data/redis/conf/
中创建这个文件,并取名为redis.conf
。