本文将详细介绍如何连接Docker Desktop中运行的Redis服务,包括命令行连接、代码示例和常见问题解决方案。
前置条件
在开始连接之前,请确保:
- Docker Desktop已正确安装并运行
- Redis容器已成功启动(参考Docker Desktop配置Redis)
- 已正确配置Redis的端口映射(默认6379)
命令行连接
使用redis-cli
- 直接使用Docker命令连接:
| 1
 | docker exec -it my-redis redis-cli
 | 
- 通过本地端口连接:
| 1
 | redis-cli -h localhost -p 6379
 | 
- 如果设置了密码,添加认证:
| 1
 | redis-cli -h localhost -p 6379 -a your_password
 | 
基本操作命令
连接成功后,可以执行以下操作:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | ping
 
 
 set mykey "Hello Redis"
 
 
 get mykey
 
 
 keys *
 
 
 del mykey
 
 | 
Java代码示例
使用Jedis
- 添加Maven依赖:
| 12
 3
 4
 5
 
 | <dependency><groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>4.3.1</version>
 </dependency>
 
 | 
- 基本连接示例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | import redis.clients.jedis.Jedis;
 public class RedisTest {
 public static void main(String[] args) {
 
 Jedis jedis = new Jedis("localhost", 6379);
 
 
 
 
 
 String pong = jedis.ping();
 System.out.println("连接成功: " + pong);
 
 
 jedis.set("test", "Hello from Java");
 
 
 String value = jedis.get("test");
 System.out.println("获取的值: " + value);
 
 
 jedis.close();
 }
 }
 
 | 
使用Spring Boot
- 添加依赖:
| 12
 3
 4
 
 | <dependency><groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
 
 | 
- 配置Redis连接:
| 12
 3
 4
 5
 6
 
 | spring:
 redis:
 host: localhost
 port: 6379
 
 
 | 
- 使用示例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | @Servicepublic class RedisService {
 @Autowired
 private StringRedisTemplate redisTemplate;
 
 public void setValue(String key, String value) {
 redisTemplate.opsForValue().set(key, value);
 }
 
 public String getValue(String key) {
 return redisTemplate.opsForValue().get(key);
 }
 }
 
 | 
连接故障排查
常见问题
- 连接被拒绝 - 
- 检查Redis容器状态:docker ps | grep redis
- 验证端口映射:docker port my-redis
- 确认防火墙设置
 
- 认证失败 - 
- 确认密码是否正确
- 检查Redis配置文件中的requirepass设置
- 验证连接字符串格式
 
- 性能问题 - 
- 检查网络延迟:redis-cli --latency
- 监控内存使用:info memory
- 查看客户端连接数:info clients
 
调试技巧
- 查看Redis日志:
- 监控Redis操作:
- 检查网络连接:
| 1
 | netstat -an | findstr 6379
 | 
最佳实践
连接池配置
- Jedis连接池:
| 12
 3
 4
 5
 
 | JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost", 6379);try (Jedis jedis = pool.getResource()) {
 
 jedis.set("key", "value");
 }
 
 | 
- Spring Boot连接池配置:
| 12
 3
 4
 5
 6
 7
 8
 
 | spring:redis:
 lettuce:
 pool:
 max-active: 8
 max-idle: 8
 min-idle: 0
 max-wait: -1ms
 
 | 
安全建议
- 设置强密码
- 限制允许的IP地址
- 定期备份数据
- 监控异常连接
总结
本文介绍了多种连接Docker中Redis服务的方法,包括命令行工具和Java代码示例。通过合理配置和使用连接池,可以确保Redis连接的稳定性和性能。在实际应用中,要注意安全性配置和性能优化。
参考资料