← 返回首页

第1章: Redis简介与安装

了解Redis的核心价值和快速上手

什么是Redis?

Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值存储数据库。

核心特点

💡 性能: Redis可以达到10万+QPS(每秒查询率),适合高并发场景。

Redis的应用场景

1. 缓存系统

最常见的使用场景,缓存热点数据,减轻数据库压力。

用户信息缓存、商品详情缓存、热门文章缓存

2. 分布式锁

在分布式系统中实现资源互斥访问。

秒杀场景、库存扣减、订单处理

3. 计数器

利用原子性操作实现各种计数功能。

文章阅读量、点赞数、访问统计

4. 排行榜

使用有序集合实现实时排行榜。

游戏排行榜、热搜榜、销量排行

5. 消息队列

使用列表或Stream实现简单的消息队列。

异步任务、延迟队列、事件通知

6. 会话管理

存储用户会话信息,支持分布式会话共享。

用户登录状态、购物车、临时数据

Redis安装

macOS 安装

# 使用 Homebrew 安装 brew install redis # 启动 Redis 服务 brew services start redis # 或者前台启动 redis-server

Linux 安装

# Ubuntu/Debian sudo apt update sudo apt install redis-server # CentOS/RHEL sudo yum install redis # 启动服务 sudo systemctl start redis sudo systemctl enable redis

Docker 安装

# 拉取镜像 docker pull redis:latest # 运行容器 docker run -d --name redis -p 6379:6379 redis:latest # 进入容器 docker exec -it redis redis-cli

源码编译安装

# 下载源码 wget https://download.redis.io/redis-stable.tar.gz tar -xzf redis-stable.tar.gz cd redis-stable # 编译安装 make sudo make install # 启动 redis-server

Redis基本命令

连接Redis

# 连接本地Redis redis-cli # 连接远程Redis redis-cli -h 192.168.1.100 -p 6379 # 使用密码连接 redis-cli -h 192.168.1.100 -p 6379 -a yourpassword

基本操作

# 测试连接 127.0.0.1:6379> PING PONG # 设置键值 127.0.0.1:6379> SET name "Redis" OK # 获取值 127.0.0.1:6379> GET name "Redis" # 查看所有键 127.0.0.1:6379> KEYS * 1) "name" # 删除键 127.0.0.1:6379> DEL name (integer) 1 # 检查键是否存在 127.0.0.1:6379> EXISTS name (integer) 0

服务器信息

# 查看服务器信息 127.0.0.1:6379> INFO # 查看统计信息 127.0.0.1:6379> INFO stats # 查看内存使用 127.0.0.1:6379> INFO memory # 查看客户端连接 127.0.0.1:6379> CLIENT LIST

Java连接Redis

添加依赖(Maven)

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>

配置文件(application.yml)

spring: redis: host: localhost port: 6379 password: database: 0 lettuce: pool: max-active: 8 max-idle: 8 min-idle: 0 max-wait: -1ms

使用RedisTemplate

@Service public class RedisService { @Autowired private RedisTemplate<String, Object> redisTemplate; // 设置值 public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } // 设置值并指定过期时间 public void setWithExpire(String key, Object value, long timeout, TimeUnit unit) { redisTemplate.opsForValue().set(key, value, timeout, unit); } // 获取值 public Object get(String key) { return redisTemplate.opsForValue().get(key); } // 删除键 public Boolean delete(String key) { return redisTemplate.delete(key); } // 检查键是否存在 public Boolean hasKey(String key) { return redisTemplate.hasKey(key); } // 设置过期时间 public Boolean expire(String key, long timeout, TimeUnit unit) { return redisTemplate.expire(key, timeout, unit); } }

使用示例

@RestController @RequestMapping("/api/cache") public class CacheController { @Autowired private RedisService redisService; @PostMapping("/set") public String setValue(@RequestParam String key, @RequestParam String value) { redisService.set(key, value); return "设置成功"; } @GetMapping("/get") public Object getValue(@RequestParam String key) { return redisService.get(key); } @DeleteMapping("/delete") public String deleteValue(@RequestParam String key) { redisService.delete(key); return "删除成功"; } }

Redis配置文件

重要配置项

# 绑定IP(默认127.0.0.1) bind 127.0.0.1 # 端口号 port 6379 # 后台运行 daemonize yes # 密码设置 requirepass yourpassword # 最大内存 maxmemory 256mb # 内存淘汰策略 maxmemory-policy allkeys-lru # 持久化文件名 dbfilename dump.rdb # 持久化目录 dir /var/lib/redis
⚠️ 安全提示: 生产环境必须设置密码,并限制访问IP!

本章小结

← 返回首页 下一章:数据类型 →