本文将详细介绍如何连接Docker Desktop中运行的Redis服务,包括命令行连接、代码示例和常见问题解决方案。

前置条件

在开始连接之前,请确保:

  1. Docker Desktop已正确安装并运行
  2. Redis容器已成功启动(参考Docker Desktop配置Redis
  3. 已正确配置Redis的端口映射(默认6379)

命令行连接

使用redis-cli

  1. 直接使用Docker命令连接:
1
docker exec -it my-redis redis-cli
  1. 通过本地端口连接:
1
redis-cli -h localhost -p 6379
  1. 如果设置了密码,添加认证:
1
redis-cli -h localhost -p 6379 -a your_password

基本操作命令

连接成功后,可以执行以下操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 测试连接
ping

# 设置键值对
set mykey "Hello Redis"

# 获取值
get mykey

# 查看所有键
keys *

# 删除键
del mykey

Java代码示例

使用Jedis

  1. 添加Maven依赖:
1
2
3
4
5
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
  1. 基本连接示例:
1
2
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 jedis = new Jedis("localhost", 6379);

// 如果设置了密码
// jedis.auth("your_password");

// 测试连接
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

  1. 添加依赖:
1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置Redis连接:
1
2
3
4
5
6
# application.yml
spring:
redis:
host: localhost
port: 6379
# password: your_password # 如果设置了密码
  1. 使用示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public 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);
}
}

连接故障排查

常见问题

  1. 连接被拒绝

    • 检查Redis容器状态:docker ps | grep redis
    • 验证端口映射:docker port my-redis
    • 确认防火墙设置
  2. 认证失败

    • 确认密码是否正确
    • 检查Redis配置文件中的requirepass设置
    • 验证连接字符串格式
  3. 性能问题

    • 检查网络延迟:redis-cli --latency
    • 监控内存使用:info memory
    • 查看客户端连接数:info clients

调试技巧

  1. 查看Redis日志:
1
docker logs my-redis
  1. 监控Redis操作:
1
redis-cli monitor
  1. 检查网络连接:
1
netstat -an | findstr 6379

最佳实践

连接池配置

  1. Jedis连接池:
1
2
3
4
5
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost", 6379);
try (Jedis jedis = pool.getResource()) {
// 使用连接池中的连接
jedis.set("key", "value");
}
  1. Spring Boot连接池配置:
1
2
3
4
5
6
7
8
spring:
redis:
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: -1ms

安全建议

  1. 设置强密码
  2. 限制允许的IP地址
  3. 定期备份数据
  4. 监控异常连接

总结

本文介绍了多种连接Docker中Redis服务的方法,包括命令行工具和Java代码示例。通过合理配置和使用连接池,可以确保Redis连接的稳定性和性能。在实际应用中,要注意安全性配置和性能优化。

参考资料