Redis简单介绍
Redis全称是Remote DIctionary Service,即远程字典服务。Redis 是一个使用C语言编写的、开源的(遵守 BSD 协议)、高性能的、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库。
查看可用的 Redis 版本
访问DokcerHub中的Redis镜像库地址:https://hub.docker.com/_/redis?tab=tags 可以通过 Sort by 查看其他版本的 Redis,默认是最新版本(
redis:latest):
https://hub.docker.com/_/redis/tags?page=1
此外,我们还可以用 docker search redis
命令来查看可用版本:
docker search redis
输出如下:
拉取最新版的Redis镜像
这里我们拉取官方的最新版本的镜像:
代码语言:javascript复制docker pull redis:latest
查看本地安装的镜像
使用以下命令来查看redis镜像是否成功拉取到本地:
代码语言:javascript复制docker images
设置Docker中的Redis容器运行外网连接
首先Docker运行的每个容器都是隔离的,Redis默认不允许外部连接,因此想要部署在Docker容器内的应用连接上Redis,需要修改Redis默认配置,这里我们以配置文件运行redis即可。
1、下载redis.conf文件
首先创建挂载目录:
代码语言:javascript复制sudo mkdir redis
redis.conf
是Redis的核心配置文件,默认docker运行的redis是不存在配置文件的,这里可以先从官网下载:
wget http://download.redis.io/redis-stable/redis.conf
2、设置redis.conf文件权限
代码语言:javascript复制sudo chown -R $USER redis.conf
-R或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理 chown [-R] [用户名称:组名称] [文件或目录]
3、修改默认配置信息
代码语言:javascript复制vi redis.conf
i 开始编辑
编辑完成后esc :wq保存修改
- bind 127.0.0.1 -::1 #这行要注释掉,解除本地连接限制
- protected-mode no #默认yes,如果设置为yes,则只允许在本机的回环连接,其他机器无法连接。
- daemonize no #默认no 为不守护进程模式,docker部署不需要改为yes,docker run -d本身就是后台启动,不然会冲突
- requirepass 123456 #设置密码
- appendonly yes #持久化
创建并运行一个Redis容器和设置链接密码
Redis镜像拉取成功以后,我们可以使用以下命令来运行创建一个名为redis-test的redis容器:
代码语言:javascript复制docker run --name redis-test -p 6379:6379 -v /docker-data/redis/redis.conf:/etc/redis/redis.conf -v /docker-data/redis:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
参数说明:
- --name redis-test:容器名称。
- -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
- -v /docker-data/redis/redis.conf:/etc/redis/redis.conf : 将主机中配置文件挂载到容器中
- -v /docker-data/redis:/data : 将主机中data挂载到容器的/redis
- -d redis redis-server /etc/redis/redis.conf:表示后台启动redis,以配置文件启动redis,加载容器内的conf文件。
- redis-server /etc/redis/redis.conf : 容器中以配置文件方式启动redis
- redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
- redis-server --requirepass 123456 :redis连接密码设置
验证Redis是否安装成功
最后我们可以通过 docker ps 命令查看容器的运行信息:
代码语言:javascript复制docker ps
接着我们通过 redis-cli 连接测试使用 redis 服务。
代码语言:javascript复制docker exec -it redis-test /bin/bash
redis-cli
# 密码登录
auth 123456
Another Redis Desktop Manager介绍:
Redis DeskTop Manager自从进入了0.9.9版本就开始付费使用或者贡献代码获得免费使用期限。这时候,Another Redis DeskTop Manager作为一款基于nodejs开发的免费的Redis可视化管理工具,可以运行在Windows、Linux、Mac平台,而且是开源免费应用,就很推荐使用了。
gitee源码地址:https://gitee.com/qishibo/AnotherRedisDesktopManager window .exe安装包下载地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases
Redis Client On Error: Error: connect ETIMEDOUT xxx.xxx.xxx:6379 Config right?
由于上面我已经对redis.conf配置文件进行了允许外网连接配置的修改,报这个错误我猜测是因为服务器没有配置6379的开发端口,所以需要到服务器后端管理中添加6379端口配置。
Another Redis Desktop Manager测试连接:
参考文章:
Docker安装Redis并配置文件启动