Redis概述
核心特性
flowchart TD
Redis[Redis]
Redis --> 内存存储
Redis --> 数据结构
Redis --> 持久化
Redis --> 高可用
Redis简介
Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,可用作数据库、缓存和消息中间件。
Java客户端对比
客户端 | 特点 | 适用场景 |
---|---|---|
Jedis | 简单直接,同步阻塞 | 简单应用 |
Lettuce | 异步非阻塞,支持响应式 | 高并发场景 |
Redisson | 分布式特性丰富 | 分布式系统 |
Spring Data Redis | Spring生态集成 | Spring项目 |
基础配置
-
添加依赖(Jedis示例):
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.3.1</version> </dependency>
-
连接Redis:
Jedis jedis = new Jedis("localhost", 6379); String value = jedis.get("key"); jedis.close();
-
Spring Boot配置:
spring: redis: host: localhost port: 6379 password: database: 0
核心优势
- 高性能:内存操作,单线程模型
- 丰富的数据结构:String, Hash, List, Set等
- 持久化支持:RDB快照和AOF日志
- 高可用方案:主从复制、哨兵、集群
- 丰富的客户端支持
注意点
- 合理设置内存大小
- 注意持久化配置
- 生产环境使用连接池
- 考虑网络延迟影响
- 做好监控和告警
Redis 环境搭建
Redis 服务器安装
Windows 安装
-
下载 Redis for Windows
- 访问 https://github.com/microsoftarchive/redis/releases
- 下载最新版本的 Redis-x64-xxx.msi
-
安装步骤
- 双击安装包运行
- 选择安装路径
- 设置端口(默认 6379)
- 设置最大内存
- 完成安装
-
验证安装
# 启动 Redis 服务 redis-server # 测试连接 redis-cli 127.0.0.1:6379> ping PONG
macOS 安装
# 使用 Homebrew 安装
brew install redis
# 启动 Redis 服务
brew services start redis
# 测试连接
redis-cli
127.0.0.1:6379> ping
PONG
Linux 安装
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install redis-server
# CentOS/RHEL
sudo yum install redis
# 启动服务
sudo systemctl start redis
# 设置开机自启
sudo systemctl enable redis
Redis 客户端安装
Redis Desktop Manager (Another Redis Desktop Manager)
-
下载安装
- 访问 https://github.com/qishibo/AnotherRedisDesktopManager/releases
- 下载适合系统的安装包
- 安装运行
-
连接配置
- 点击"新建连接"
- 填写连接信息:
- 名称:自定义
- 主机:localhost
- 端口:6379
- 密码:(如果有)
- 点击"测试连接"
- 保存连接
RedisInsight
-
下载安装
- 访问 https://redis.com/redis-enterprise/redis-insight/
- 下载适合系统的安装包
- 安装运行
-
连接配置
- 点击"添加 Redis 数据库"
- 填写连接信息
- 测试连接
- 保存配置
客户端连接 Redis
使用 redis-cli
# 基本连接
redis-cli
# 指定主机和端口
redis-cli -h localhost -p 6379
# 带密码连接
redis-cli -a your_password
# 测试连接
127.0.0.1:6379> ping
PONG
使用 Java 代码连接
// 添加依赖
// Maven
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
// 基本连接示例
Jedis jedis = new Jedis("localhost", 6379);
System.out.println("连接成功:" + jedis.ping());
jedis.close();
// 带密码连接
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("your_password");
System.out.println("连接成功:" + jedis.ping());
jedis.close();
常见问题解决
1. 连接被拒绝
flowchart TD
A[检查Redis服务是否运行] --> B{服务未运行?}
B -- 是 --> C[启动Redis服务]
B -- 否 --> D[检查端口是否被占用]
D --> E{端口被占用?}
E -- 是 --> F[修改Redis配置]
F --> G[重启Redis服务]
E -- 否 --> H[检查防火墙设置]
G --> I[重新尝试连接]
H --> I
C --> I
2. 认证失败
flowchart TD
A[检查密码是否正确] --> B{密码错误?}
B -- 是 --> C[修改密码]
C --> D[重启Redis服务]
D --> E[重新尝试连接]
B -- 否 --> F[检查Redis配置]
F --> G[确认认证方式]
G --> E
最佳实践
-
生产环境建议:
- 使用密码认证
- 修改默认端口
- 限制最大内存
- 配置持久化
- 设置访问控制
-
开发环境建议:
- 使用默认配置快速启动
- 使用图形化客户端方便调试
- 记录常用命令
- 定期备份数据
-
安全建议:
- 不要使用默认端口
- 设置强密码
- 限制远程访问
- 定期更新版本
- 监控异常连接