本地启动配置redis
- 安装包安装
- 下载安装包
下载地址:Download | Redis
安装gcc
yum install gcc
把下载好的redis-6.2.1r/1.tar.gz放在/usr/local文件夹下,并解压
wget https://download.redis.io/releases/redis-6.2.11.tar.gz
tar xzf redis-6.2.11.tar.gz
- 编译与安装
make && make install
- 命令
src/redis-server redis.conf #启动服务
src/redis-cli shutdown #关闭服务
src/redis-cli -a root shutdown #password 需要验证
docker启动redis
docker拉取redis镜像
docker search redis 搜索
docker pull redis 拉取最新redis
docker pull redis:6. 拉取指定版本
配置redis运行:
docker run -itd --name redis -p 6379:6379 redis
c1a0da71c41a67bf43539b3c0c46afe5d92291fb6e0115b773ab10f30d48b2bd
进入Redis容器使用redis-cli命令进行连接:
docker exec -it redis redis-cli
进入redis内部,以客户端启动
docker exec -it redis /bin/bash
root@c1a0da71c41a:/data# redis-cli
127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> get test
"1"
127.0.0.1:6379> exit
redis.conf 从官网下载: http://download.redis.io/redis-stable/redis.conf
指定redis.conf 启动
docker run -p 6379:6379 --privileged=true --name redis \
-v /mydata/redis/data:/data \
-d redis:5 redis-server --appendonly yes
docker run -p 6379:6379 --name redis \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解释:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/redis/redis.conf
客户端启动:
docker exec -it redis redis-cli
docker-compose启动redis
version: '3'
services:
redis:
image: redis:6.2.1
container_name: redis
ports:
- 6379:6379
volumes:
- ./redis/data:/data:rw
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
networks:
- dev
networks:
dev:
external: true
启动:
docker-compose -f docker-compose-redis.yml up -d
如果需要设置密码password:可以通过修改配置文件,或者增加命令的形式
command: redis-server --requirepass redis
修改配置文件redis.conf:
requirepass redis
但是遇到问题时,我在docker或者docker-compose指定使用redis-server redis.conf的时候,容器就起不来。
version: '3'
services:
redis:
image: redis:6.2.1
container_name: redis
command: redis-server /etc/redis.conf
ports:
- 6379:6379
volumes:
- ./redis/data:/data:rw
- ./redis/redis.conf:/etc/redis.conf:rw
networks:
- dev
networks:
dev:
external: true
这里面需要考虑的一点就是redis.conf配置文件使用的后台启动,和docker的后台启动是互斥的,需要修改我们的配置文件:修改为前台启动
daemonize no
如果修改为前台启动后,还是不可以正常启动redis,就比如我遇到的问题:
Starting redis ... done
Attaching to redis
redis exited with code 1
可能就要考虑下你的redis.conf配置文件与你的redis镜像版本匹配问题,redis的镜像容器里是没有redsi.conf配置文件的,需要我们自己映射到容器,关于redis.conf配置文件可以在这里下载:https://redis.io/docs/management/config/
最后我本地使用的是reids-6.2.1的镜像,然后下载使用redis6.2的conf文件配置再次配置就成功起来了
protected-mode no
daemonize no
requirepass redis
更多推荐
docker第三讲 docker启动redis容器以及解决redis-server启动redis直接挂的问题
发布评论