前言
在学习过程中,我们长期接触到的是Mysql 关系型数据库,也是够我们平时练习项目用的,但是后面肯定会有大型数据的访问就要借助新的新的工具。
一、什么是Redis
Redis(Remote Dictionary Server)是一个基于内存的 键值型非关系型数据库(NoSQL),采用 C 语言编写,支持数据持久化、多种数据结构(如字符串、哈希、列表、集合等),并具备高性能读写能力(每秒数十万次操作)
核心特点:
-
内存存储为主:数据主要存储在内存中,读写速度极快(微秒级响应)。
-
持久化机制:支持 RDB(快照)和 AOF(日志追加)两种方式将内存数据保存到磁盘,防止数据丢失。
-
丰富的数据结构:支持字符串、哈希、列表、集合、有序集合等,适用于多种场景。
-
高可用性:支持主从复制、哨兵模式、集群分片等,保障服务稳定
二、Redis 的作用
Redis 主要解决 高性能读写 和 临时数据存储 需求,典型应用场景包括:
-
缓存:将高频访问数据(如用户会话、商品详情)缓存至内存,减轻 MySQL 等主数据库压力。
-
实时数据处理:如计数器(点击量)、排行榜(有序集合)、实时消息队列(List/Stream)。
-
分布式锁:通过
SETNX
命令实现跨服务锁机制,避免资源竞争。 -
会话存储:存储用户登录状态(Session),支持分布式系统共享会话。
-
地理空间索引:通过
GEO
类型支持地理位置查询(如附近的人)。
三、如何使用 Redis
版本兼容性:仅支持 64 位 Windows 系统,32 位系统不可用
1. 安装与启动
下载 Windows 版(GitHub) Redis(tporadowski/redis)并安装。
解压到目标目录(如 D:\Redis-x64-5.0.14.1)。然后进入终端:
(1) 通过命令行启动
- 通过命令行安装服务:(依次运行)
# 注册为 Windows 服务
redis-server.exe --service-install redis.windows.conf --service-name redisService --loglevel verbose
# 启动服务
redis-server.exe --service-start --service-name redisService
- 启动服务结果显示:
# 注册为 Windows 服务D:\Redis-x64-5.0.14.1>redis-server.exe --service-install redis.windows.conf --service-name redisService --loglevel verbose
[21100] 14 Apr 18:54:29.907 # Granting read/write access to 'NT AUTHORITY\NetworkService' on: "D:\Redis-x64-5.0.14.1" "D:\Redis-x64-5.0.14.1\"
[21100] 14 Apr 18:54:29.907 # Redis successfully installed as a service.# # 启动服务
D:\Redis-x64-5.0.14.1>redis-server.exe --service-start --service-name redisService
[13668] 14 Apr 20:17:16.206 # Redis service successfully started.
(2) 通过服务管理器启动(图形化操作)
- 按
Win + R
打开运行窗口,输入services.msc
- 找到服务名
redisService
,右键选择 启动
2. 连接 Redis 客户端
# 启动 Redis CLI
redis-cli.exe
# 测试连接(返回 PONG 表示成功)
127.0.0.1:6379> PING
运行结果:
3. 配置与验证
(1) 设置密码(可选)
-
修改配置文件
redis.windows-service.conf
,取消注释requirepass
并设置密码:requirepass yourpassword
-
重启 Redis 服务使配置生效。
(2) 图形化管理工具(可选)
-
Redis Desktop Manager:支持可视化操作(需自行下载安装)
四、总结
1. 服务管理命令汇总
操作 | 命令 |
---|---|
启动服务 | redis-server.exe --service-start --service-name redisService |
停止服务 | redis-server.exe --service-stop --service-name redisService |
重启服务 | redis-server.exe --service-restart --service-name redisService |
卸载服务 | redis-server.exe --service-uninstall --service-name redisService |
2. 查看实时日志
在 Redis 安装目录下打开日志文件 redis-service.log
,观察是否有错误信息。
3. Redis常见问题
问题 1:服务启动失败
-
原因:配置文件路径错误或权限不足
-
解决方案:
# 卸载旧服务
redis-server.exe --service-uninstall --service-name redisService
# 重新安装服务(指定完整配置文件路径)
redis-server.exe --service-install "D:\Redis-x64-5.0.14.1\redis.windows.conf" --service-name redisService
问题 2:端口被占用
-
解决步骤:
-
修改配置文件
redis.windows.conf
中的端口号:port 6380
-
重启服务:
redis-server.exe --service-restart --service-name redisService
-
问题 3:防火墙拦截
-
操作:允许 Redis 端口(默认 6379)通过防火墙:
New-NetFirewallRule -DisplayName "Redis Port" -Direction Inbound -Protocol TCP -LocalPort 6379 -Action Allow
4. Redis 与 MySQL 的关系与区别
1. 核心区别
维度 | MySQL(关系型数据库) | Redis(非关系型数据库) |
---|---|---|
数据模型 | 表结构,支持复杂 SQL 查询、事务、外键约束。 | 键值对存储,支持多种数据结构,无复杂关联。 |
存储介质 | 数据持久化在磁盘,依赖内存缓存(如 InnoDB Buffer Pool)。 | 内存存储为主,支持持久化(RDB/AOF)。 |
性能 | 适合复杂查询和事务处理,高并发下写性能受限。 | 单线程模型,内存读写,吞吐量高(每秒数十万次)。 |
事务支持 | 完整 ACID 事务(原子性、一致性等)。 | 简单事务(MULTI/EXEC),不支持回滚。 |
适用场景 | 长期存储结构化数据(如用户账户、订单)。 | 缓存、实时数据处理、高频读写场景(如秒杀)。 |
2. 协同关系
-
互补架构:
- MySQL 为主存储:负责持久化、复杂查询和事务处理。
- Redis 为缓存层:加速热点数据访问,降低数据库负载。
-
数据一致性:
- 通过 缓存失效策略(如设置 TTL)或 双写机制 保障数据同步。
Redis 和 Mysql区别:MySQL与Redis的区别与联系详解(参考文章)
五、建议
1. 选择依据
-
需要复杂查询和强一致性时选 MySQL;追求高性能和实时性时选 Redis。
-
实际应用中,两者结合使用(如 MySQL + Redis)是常见架构。
2. 注意事项
-
Redis 内存成本较高,不适合存储海量冷数据。
-
MySQL 需优化索引和查询,避免全表扫描。
通过合理搭配 Redis 和 MySQL,可构建高性能、高可用的系统架构,满足多样化业务需求。