使用docker创建redis实现远程连接
发现问题
由于Redis默认只能进行本地连接,所以在我学习完基础指令之后,使用Java连接Redis进行Java代码层面的学习时,一开始使用本地的docker内的redis,完全是没有任何问题的,我自己买了服务器,所以练一下远程的Redis试一试,没想到掉到坑里的,使用Jedis连接测试时,一直显示
Failed connecting to 101.200.240.22:6379
,一直连不上,于是开启了数据分析和整合之路。
解决问题
我这个我问题卡了我两天,其实就是因为我的阿里云服务器安全组没开,但是我第一次去看时,明显看到是开了的,今天去看却没有开放,难受。
安装步骤:
# 下载指定的redis版本(我下的是当前最后一个版本6.0.9,redis6之后将单线程转成了多线程,好像是为了提高IO效率)
docker pull redis
# 创建两个目录
mkdir /root/docker/redis/conf
mkdir /root/docker/redis/data
# cd进入/root/docker/redis/conf后创建redis.conf
touch redis.conf
# 下载redis.conf
# docker上面的redis是没有redis.conf,得自己去github找redis下,和版本对应的
# 搞好放在/root/docker/redis/conf下面
# 复制完之后,修改一下redis.conf里面的信息
bind 0.0.0.0 # 将ip改成这样可以让远程也可以使用,但也不安全
protected-mode no # 关闭安全模式,不然外网不能连
requirepass 123456 # 设置密码Java测试时需要,默认是没有的,一般还是需要设置的复杂一点
# 创建docker容器(创建不了将\去掉)
docker run -p 6379:6379 --name redis-learn \
-v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /root/docker/redis/data:/data -d redis \
--requirepass "123456" --appendonly yes
# 进入redis,docker的redis容器跑起来了,就表示redis的服务也开了,进入之后就不需要在开服务了。
docker exec -it redis-learn /bin/bash
# 连接redis
redis-cli -h 101.200.240.22 -p 6379
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyAjN5ITMykTM0EjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
使用Jedis连接:
Jedis也连接成功!