通过docker安装redis配置redis.conf及远程连接

简介: 通过docker安装redis配置redis.conf及远程连接

1,首先通过Docker拉取Redis镜像

关于Redis的Docker镜像信息及说明可以通过https://hub.docker.com/_/redis查看
docker pull redis 拉取redis镜像(最新版)
docker pull redis:7.0 拉取指定版本

2,测试启动Redis

下载镜像后,只需要一个命令就可以启动Redis:
r# docker run -itd --name redis -p 6379:6379 redis

进入redis内部,测试Redis
r# docker exec -it redis /bin/bash
root@1431ee4313f3:/data# redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> exit
root@1431ee4313f3:/data#

可以发现Redis已经启动,不过这个时候的Redis没有配置文件,没有设置密码。我们需要通过修改镜像并保存的方法进行设置,也可以通过映射的方式在启动的时候设置。这里介绍映射的方式,因为它更加灵活一些。

3,配置Redis.conf

首先需要获取Redis的配置文件。这个我们通过docker cp将容器内的默认配置文件拷贝出来,然后在这个基础上进行修改。
r# docker exec -it redis /bin/bash
root@1431ee4313f3:/data# ls -l /etc/redis/redis.conf
-rwxrwxrwx 1 root root 106545 Jul 18 21:04 /etc/redis/redis.conf
root@1431ee4313f3:/data# exit
exit
确定redis.conf位置后就可以拷贝出来了。
r# docker cp redis:/etc/redis/redis.conf ./

然后对redis.conf进行修改,主要修改的地方包括:
查找requirepass,将requirepass的哪一行的注释去掉,修改为:
requirepass 你要设置的密码

然后将:
bind 127.0.0.1 -::1
protected-mode yes
这两行注释掉,否则的化远程连接的时候会报错。

4,重新启动Redis

将原来启动的redis关闭,通过:
docker stop redis

然后将配置好的redis配置文件拷贝到服务器的/home/redis/conf下(假设你的Redis配置目录为/home/redis/),然后运行
docker run -itd -p 6379:6379 -v /home/redis/conf:/usr/local/etc/redis --name redis redis redis-server /usr/local/etc/redis/redis.conf
命令解释:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称。
-v 挂载目录,规则与端口映射相同。
-itd 表示后台启动redis
redis-server /usr/local/etc/redis/redis.conf 表示以这个配置文件启动redis,因为目录映射,所以用的是你配置的redis.conf

启动Redis后,通过本机连接测试:
r# docker exec -it redis /bin/bash
root@1431ee4313f3:/data# redis-cli
127.0.0.1:6379> set foo bar
(error) NOAUTH Authentication required.
127.0.0.1:6379>
可以发现已经设置了授权,需要密码进行访问。输入

127.0.0.1:6379> auth 你设置的密码

就可以设置和测试redis了。

5,远程测试

在另外一台安装了redis的机器上运行(也可以在另外一台机器上通过Docker启动Redis用于访问测试):
redis-cli -h host -p port -a password
host:远程redis服务器host
port:远程redis服务端口
password:远程redis服务密码
就可以进行远程访问。

如果出现Server closed the connection等报错信息,就需要检查一下
bind 127.0.0.1 -::1
protected-mode yes
这两行是否注释掉了。

相关文章
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
10月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
928 25
|
10月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2914 8
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
966 6
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
902 9
|
NoSQL Redis 数据安全/隐私保护
挂载配置文件以Docker启动Redis服务
以上步骤提供了一个高效且实用的方式来使用Docker启动并运行带有自定义配置的Redis服务。这些操作可以适用于开发、测试和生产环境,是一种灵活且可扩展的部署方案。通过挂载配置文件和数据卷,您可以轻松地管理和迁移您的Redis实例。
1086 9
|
NoSQL Java Redis
Redis 远程连接报错解决方案
本文目录 1. 场景 2. 解决方案
400 0
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1804 0
|
11月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
419 1
Redis专题-实战篇二-商户查询缓存