文章摘要: 非关系型数据库模型(NoSQL),高性能键值存储数据库,内存数据库。
简介
- Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储数据库,通常用作缓存、消息队列和实时应用中的数据存储。
主要功能
- 速度快:Redis将所有数据存储在内存中,对数据的读写速度非常快。
- 支持多种数据结构:Redis支持多种数据类型。
- 持久化:虽然Redis是基于内存的,但它提供了数据持久化的功能。
- 事务支持:Redis支持事务,允许执行一组命令,并确保所有命令在事务中被顺序执行,不会被其他命令插入。
- 高可用和分布式:Redis支持主从复制、哨兵系统和集群,可以实现自动故障转移、读写分离和数据分片。
- 功能丰富:Redis支持发布订阅模式、Lua脚本、事务、过期键等高级功能。
注意事项
- 数据备份:定期进行数据备份,以防止数据丢失。
- 持久化策略:合理配置Redis的持久化策略(RDB和AOF),在数据安全和性能之间找到平衡。
- 内存管理:监控Redis的内存使用情况,避免内存溢出,合理使用数据结构和内存优化技术。
- 高可用性:通过Redis Sentinel或Redis Cluster实现高可用性,避免单点故障。
- 性能监控:持续监控Redis的性能指标,如响应时间、内存使用情况等,及时发现并解决问题。
- 网络延迟:注意网络延迟对Redis性能的影响,尽可能减少网络延迟。
- 安全防护:设置密码认证,限制访问IP,以增强Redis的安全性。
适用场景
- 热点数据的缓存:作为缓存系统,减少数据库的读取次数,提高系统响应速度。
- 消息队列:利用发布订阅模式和列表结构实现简单的消息队列功能。
- 排行榜或计数器:利用有序集合实现排行榜或计数器功能。
- 实时分析系统:如网站实时统计在线用户数、用户行为分析等。
- 会话缓存:存储用户会话信息,如购物车数据、用户登录状态等。
安装与卸载
详细总结:Package-Redis-安装与卸载
终端命令
配置文件
- 修改
/etc/redis/redis.conf配置文件。 - 提示:用户名默认是
default。
# 找到对应的英文,并修改
# 绑定地址
bind 127.0.0.1 -::1 # 本地主机
bind 0.0.0.0 # 允许远程访问
# 端口号
port 6379
# 启用并设置密码
requirepass 123456
# 日志文件位置
logfile /var/log/redis/redis-server.log
热门推荐
问题总结
数据类型
- 字符串:适合缓存、计数器等简单场景。
- 哈希:适合存储对象属性,如用户信息。
- 列表:适合消息队列、历史记录。
- 集合:适合去重复、标签等场景。
- 有序集合:适合排行榜、优先队列。
Redis引发的问题
- 穿透:请求未命中缓存,直接访问数据库,造成数据库压力,可通过请求参数校验和使用布隆过滤器来防止。
- 击穿:某个热点数据过期,瞬时大量请求涌向数据库,可通过加锁、设置永不过期的缓存等方式防止。
- 雪崩:大量缓存同时过期,导致数据库瞬时压力增大,可通过随机过期时间、分散过期时间来减轻影响。
持久化操作
- 降低数据丢失的可能。
- 生成文件RDB:数据库文件,定时缓存里面的数据,并导出成
rdb文件 - 生成日志文件AOF:将对redis的每一步操作都记录起来,日志文件会很大。
- 实际方案:日志文件实时记录,并每隔一段时间导出成
rdb文件,再删除以导出部分的日志文件。