当前位置: 首页 > news >正文

04-redis

文章目录

    • 1. redis是什么?有什么特点?
    • 2. redis五种数据类型及其应用场景
    • 3. redis的两种持久化机制
    • 4. 如何实现redis的高可用性
    • 5. redis在高并发场景中的应用
    • 6. 如何优化redis的性能
    • 7. redis事务及原子性
    • 8. redis sentinel(哨兵)的作用
    • 9. redis集群的工作原理
    • 10. 如何处理redis的内存溢出
    • 11. redis与Memcached的区别
    • 12. redis中的慢查询是什么?如何排查?
    • 13. redis在分布式系统中的应用
    • 14. redis的内存管理机制
    • 15. 如何监控redis的性能

1. redis是什么?有什么特点?

redis是一个开源、高性能的键值存储系统,常被称为内存数据库。

特点:

  • 高性能:基于内存,支持高吞吐量和低延迟。
  • 多数据结构:支持字符串、列表、哈希等多样化的数据结构。
  • 持久化:支持RDB和AOF两种持久化方式,保证数据不丢失。
  • 高可用性:支持主从复制、哨兵模式和集群模式。
  • 丰富功能:包括事务、发布订阅、Lua脚本等特性。

2. redis五种数据类型及其应用场景

  • 字符串(String):适合存储间的键值对,如用户信息。
  • 列表(List):按顺序存储数据,适用于队列、栈等场景。
  • 哈希(Hash):存储键值对的集合,适合存储复杂对象。
  • 集合(Set):存储无序且唯一的元素,适用于需要去重的场景。
  • 有序集合(SortedSet)按分数排序的集合,适用于排行榜等场景。

3. redis的两种持久化机制

redis的持久化机制主要有两种:

  • RDB(快照):周期性地将数据快照写入文件,适合备份和恢复。
  • AOF(Append Only File):记录每次写操作,保证数据的持久性,但文件较大。

如何选择:选择时应考虑数据重要性和性能需求:

  • 若需高性能且可以接受部分数据丢失,选择RDB。
  • 若数据至关重要,需保证持久性,选择AOF。

4. 如何实现redis的高可用性

通过以下几种方式实现:

  • 主从复制:主节点写,从节点读,提高读性能并实现故障转移。
  • 哨兵模式:自动监控和故障转移,无需手动干预。
  • 集群模式:通过分片实现高可用和高性能。

5. redis在高并发场景中的应用

  • 分布式锁:采用setnx命令实现互斥锁。
  • 限流器:使用滑动窗口或计数器控制访问频率。
  • 消息队列:通过列表实现高效的生产者消费者模型。

6. 如何优化redis的性能

  • 选择合适的数据结构:根据需求选择最合适的结构。
  • 配置优化:调整内存、持久化等参数。
  • 使用Pipeline:批量操作减少网络开销。
  • 分片和集群:水平扩展提高处理能力。

7. redis事务及原子性

redis的事务通过multiexec命令实现原子性操作。在事务执行期间,所有命令被队列处理,确保原子性,但不影响性能。

8. redis sentinel(哨兵)的作用

哨兵用于监控主从节点,自动故障转移,管理主从架构,并发布服务信息。

9. redis集群的工作原理

集群通过分片将数据分不到多个节点,支持自动管理、故障转移和弹性扩展,需手动配置。

10. 如何处理redis的内存溢出

  • 淘汰策略:配置过期时间,自动删除不使用的数据。
  • 使用持久化:确保数据不会丢失。
  • 优化数据结构:减少内存使用。
  • 增加内存资源:扩展服务器内存。

11. redis与Memcached的区别

  • 数据结构:redis支持多种复杂数据类型,memcached只要支持字符串。
  • 持久化:redis支持持久化,memcached不支持。
  • 性能:在复杂操作上,redis可能稍逊,但在简单操作上两者性能相近。

12. redis中的慢查询是什么?如何排查?

慢查询指那些执行时间过长的命令,平均响应时间超过阈值。

排查方法:

  • 使用showlog命令查看日志。
  • 分析常用命令,优化复杂结构。
  • 使用随机键避免基于范围的查询。

13. redis在分布式系统中的应用

  • 缓存系统:提高系统响应速度。
  • 消息队列:实现任务分发和处理。
  • 分布式锁:控制并发访问。
  • 实时统计:处理计数器和排行榜等场景。
  • 会话管理:存储用户会话信息。

14. redis的内存管理机制

redis使用jemalloc作为内存分配器,通过内存碎片整理和预分配策略优化内存使用。

15. 如何监控redis的性能

常见监控工具:

  • redis cli:查看实时指标。
  • prometheus + grafana:图形化监控。
  • redis监控工具:如redis-stat、redis-benchmark。

通过监控CPU、内存、网络、命令执行时间和连接数等指标,及时发现瓶颈和异常情况。

相关文章:

  • 今日行情明日机会——20250508
  • 让大模型涌现“连续性人格”
  • Oracle 19c中的私有临时表
  • android ViewModel liveData无法监听之多线程下activityViewModels不安全
  • mysql数据库体验
  • 趣味编程:答案之书
  • viewDesign里的table内嵌套select动态添加表格行绑定内容丢失
  • string[字符串中第一个的唯一字符][蓝桥杯]
  • Matlab 车辆四自由度垂向模型平稳性
  • 基于C#的CAN总线通信开发指南
  • 在Postman中高效生成测试接口:从API文档到可执行测试的完整指南
  • windows的rancherDesktop修改镜像源
  • 算法训练营第十一天|150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素
  • 安卓应用卡顿、性能低下的背后原因
  • goner/otel 在Gone框架接入OpenTelemetry
  • stable-diffusion windows本地部署
  • Spring AI 集成 DeepSeek V3 模型开发指南
  • 【C++】C++函数指针详解与实用技巧
  • 小白借助ai对全栈进行浅浅理解(学习笔记)-Lambda、Optional 避免空指针与新的日期时间 API
  • 南邮计科电工电子实验第五次课与非门设计数字锁逻辑电路小测答案
  • 国家主席习近平同普京总统签署关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明
  • 商务部再回应中美经贸高层会谈
  • 司法部谈民营经济促进法:对违规异地执法问题作出禁止性规定
  • 新消费观察| 零售品牌 “走出去” ,如何开辟“新蓝海”?
  • 数据中心业务今年预增50%,丹佛斯:中国是全球最重要的市场
  • 太空摄影的发展