参考课程:https://www.bilibili.com/video/BV1Rv41177Af
参考书:https://blog.csdn.net/liu8490631/article/details/124290851
环境 CentOS 7.4
新建数据和配置目录:
mkdir ./data
mkdri ./conf
cd ./conf
下载配置文件:
wget -O redis.conf https://raw.githubusercontent.com/redis/redis/6.2/redis.conf
复制一份不加注释行和空行的的配置文件:
grep -v '^#' redis.conf | grep -v '^$' > myredis.conf
docker-compose.yml 文件version: '3.8'
services:
myredis:
container_name: myredis
image: redis:6.2.7
restart: always
ports:
- 6379:6379
privileged: true # 给Root权限
command: redis-server /etc/redis/redis.conf
volumes:
- $PWD/data:/data
- $PWD/conf/myredis.conf:/etc/redis/redis.conf
docker-compose up -d

docker stats myredis # 查看 CPU,内存使用状态
docker logs myredis # 查看日志
$ redis-serverredis.conf 文件,将其中的 daemonize no 改为 yes,让服务在后台启动$ redis-server redis.conf的路径ps -ef | grep redis 可以查看到 redis 的进程redis-cli 命令redis-cli -p 6379$ kill -9 Redis进程号$ redis-cli shutdownredis-cli -p 6379 shutdown默认有 16 个数据库,初始默认使用 0 号库,可以使用 select 切换数据库
dbsize
fulshdb 清空当前库flushall 清空全部库IO 多路复用指的是使用一个线程来监听多个文件描述符(Socket)的就绪状态,比如调用 select 和 poll,epoll 函数,传入多个 Socket,如果有一个 Socket 就绪,则返回,否则阻塞直到超时。
得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
简单讲:多个客户端 Socket 复用一个服务器线程。