Redis搭建
- 创建需要的目录:mkdir -p /Users/redis/data /Users/redis/logs /Users/redis/conf
- 给创建的这两个目录分配权限:chmod -R 777 /Users/redis/data* 和 chmod -R 777 /Users/redis/logs*
- 编辑docker-compose.yml文件
- 编写redis.conf配置文件
搭建redis目录机构如下
├─redis
│ ├─conf
│ │ │redis.conf
│ ├─data
│ │docker-compose.yml
│ ├─logs
docker-compose.yml
version: '3.3'
services:
redis:
image: redis
restart: always
hostname: redis
container_name: redis
privileged: true
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- ./data:/data
- ./conf/redis.conf:/etc/redis/redis.conf
- ./logs:/logs
command: ["redis-server","/etc/redis/redis.conf"]
redis.conf
# 开启远程可连接 需要注释点bind 127.0.0.1并把protected-mode yes改为no
# bind 127.0.0.1
protected-mode no
# 端口
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel verbose
# redis的日志
logfile /logs/redis.log
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
replica-priority 100
# 设置密码
requirepass root
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
# redis持久化,不然重启redis缓存会消失
appendonly yes
appendfilename "appendonly.aof"
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
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-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
实操命令
[root@localhost ~]# mkdir -p /Users/redis/data /Users/redis/logs /Users/redis/conf
[root@localhost ~]# chmod -R 777 /Users/redis/data*
[root@localhost ~]# chmod -R 777 /Users/redis/logs*
[root@localhost ~]# cd /Users/redis/
[root@localhost redis]# ll
total 4
drwxr-xr-x. 2 root root 24 Mar 30 20:37 conf
drwxrwxrwx. 2 root root 6 Mar 30 19:53 data
-rw-r--r--. 1 root root 426 Mar 30 20:39 docker-compose.yml
drwxrwxrwx. 2 root root 6 Mar 30 19:53 logs
[root@localhost redis]# docker-compose up -d
[+] Running 7/7
✔ redis 6 layers [⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 34.9s
✔ f1f26f570256 Pull complete 28.2s
✔ 8a1809b0503d Pull complete 28.5s
✔ d792b14d05f9 Pull complete 28.8s
✔ ad29eaf93bf6 Pull complete 29.9s
✔ 7cda84ccdb33 Pull complete 30.0s
✔ 95f837a5984d Pull complete 30.1s
[+] Running 2/2
✔ Network redis_default Created 0.9s
✔ Container redis Started 4.3s
[root@localhost redis]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 31f08b90668e 8 days ago 117 MB
[root@localhost redis]# cd logs/
[root@localhost logs]# ll
total 4
-rw-------. 1 polkitd input 2366 Mar 30 23:13 redis.log
[root@localhost logs]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5e29aa574986 redis "docker-entrypoint..." 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
[root@localhost logs]# docker exec -it redis redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required. #这个错误是因为没有进行密码认证
127.0.0.1:6379> auth root #输入密码
OK
127.0.0.1:6379> keys * #查询所有的key
1) "menu_1"
2) "menu_2"
127.0.0.1:6379> exit #退出
#第2种进入方式 docker exec -it 容器ID redis-cli -h 127.0.0.1 -p 6379 -a Password
[root@localhost logs]# docker exec -it 5e29aa574986 redis-cli -h 127.0.0.1 -p 6379 -a root
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "menu_1"
2) "menu_2"
127.0.0.1:6379>
最后
至此便是使用Docker-Compose安装单机版Redis的过程,希望能给您带去帮助!!!