【七天玩转Redis实战营】答疑汇总Day3 Redis的运维实战

简介: 【第三讲,Redis的运维实战】 讲师:仲肥,阿里云NoSQL内核工程师;Redis Core Team member;课程内容:Redis社区简介及运营方式介绍;云Redis的账号、监控、巡检、安全等性能介绍;审计,热点,大key等一般性解法;高级容灾。答疑汇总:特感谢班委@邱谦 同学

【第三讲,Redis的运维实战】
讲师:仲肥,阿里云NoSQL内核工程师;Redis Core Team member;
课程内容:Redis社区简介及运营方式介绍;云Redis的账号、监控、巡检、安全等性能介绍;审计,热点,大key等一般性解法;高级容灾。
答疑汇总:特感谢班委@邱谦 同学

文字答疑封面.jpg

Q1. 开源Redis在高并发连接下面存在的问题怎么修复?

 

比较早的时候,是贡献给社区的feature,发现问题会反馈给社区。Redis是怎么维护客户端的呢?它是存在一个list上,每次一个连接新建之后都会把这个连接的Client丢到一个list里面,在释放的时候,需要遍历这个list,这个时间复杂度是O(n),效率比较低。我们做了一个小优化,每次连接建立之后,不仅放入list里面,同时还记录下在list里的位置,可以实现在释放的时候只有O(1)的时间复杂度。本身Redis是单线程的,在高并发下虽然有epoll来做多路复用,但是本身的cpu只能用到一个核心,在多IO的时候(企业版),提升了网络的能力,连接量比较大的时候,会有更好的性能。

 

Q2. Redis建议做分布式锁吗?有什么有点或缺点?

 

主要看业务场景。Redis本身是不提供分布式锁的,但是可以用它去做一个分布式锁的方案,这个在控制台上的文档会有详细的介绍。优点是可以相对简单地搭建起来一个分布式锁系统,但在一些特别边缘地case上,可能会有一些死锁或者其他问题。

 

Q3. Redis集群如何提高性能?

 

最简单地方式就是扩节点,Redis虽然是单线程地,但是可以用多进程的方式,一个节点只能用一个cpu,两个节点可以用两个cpu,节点越多,性能吞吐就会越强。要注意的是社区的方案是要用SmartClient,需要做一些路由。如果后面的路由信息发生变化的话,客户端需要处理这些语义。云上有proxy这一层,也就是命令过来以后proxy本身会去做这些路由,把命令分发到不同的节点,使用起来和普通的主从版就没有什么区别。

 

Q4.Redis为何单线程效率这么高?为什么使用跳表不使用B+树?

 

Redis本身的跳表是在有序集合里用的数据结构。Redis的存储是用的哈希表,哈希表时间复杂度是O(1),但是会额外占用一些空间,是一种典型的用空间换时间的优化。虽然Redis是单线程的,但执行命令的路径是很短的。

 

Q5. 有没有办法看到集群版上某个节点是什么数据?

 

云上可以直接点到某个节点上面,如果有proxy,也提供自研的指定用某个DB节点迭代数据。

 

Q6. 单机Redis增加服务器CPU是否可以优化性能?

 

可以看一下Redis日常跑的时候,CPU到底跑到多少。工作线程是只有一个的,但还有一些bio线程,比如关文件,fsync等操作通常来说都不会占用也别多的CPU。最好还是观察一下。正常来说,社区版的Redis没有开6.0的多IO的话,23核的CPU已经足够了,再往上升也就没有什么太大的效果。

 

Q7. 秒杀场景是如何使用Redis的?

 

再后续的课程中(第六节)会详细的介绍这种使用场景。

 

Q8. 内存回收机制

 

Redis除了正常读写之外,还支持设置过期时间。到了过期时间之后,逻辑上是不能够再访问这个key了,但是它并不是马上做物理删除操作的,因为做物理删除需要做整个遍历,对于单线程的Redis来说任务就比较重。它会周期性地有一些任务,随机地挑选一些key,看它有没有过期,如果过期,那就做真正的物理删除。在访问这个key的时候,会提前看一下,看这个key有没有过期。如果过期,会主动删掉这个keyRedis还支持逐出操作。如果内存使用超过MaxMemory,就会挑一些key做逐出或者删除。这就要根据自己设置的MaxMemory策略来看了。从4.0之后,还支持对操作系统碎片进行整理回收,它也是后台的一种周期性任务,可以去遍历rediskey-value,看看能不能有优化的空间,但起到的作用有限。

 

Q9. 阿里的Redis如何快速查找出大key

 

在缓存分析中有hotkeybigheybigkey会打一个RDB快照,从RDB快照中的后台任务去把RDB做遍历找出大key。这是一种离线分析方式。另外也有正在开发的在线实时的大key的定位,即将上线。

 

Q10. Redis 6.x适合生产环境吗?

 

Redis6.0有很多新的特性。6.0在阿里云上已经跑了很长时间了,在生产环境上是没有什么问题的,但是多IO并没有去支持。因为社区实现多IO的时候,虽然有多线程去做网络IO,但是它并不是IOworker是并行的,而是由worker把主线程分发,等所有的线程IO执行完之后,再进行下面的步骤。这让容易造成CPU把整个机器跑满。所以多IO这个特性并不建议再生产环境上使用。

相关文章
|
4月前
|
人工智能 运维 监控
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
139 0
|
6月前
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
5月前
|
缓存 运维 安全
7天精通电商API:从接入到运维的完整实战手册
本文全面解析电商API接口技术,从基础概念到高阶应用,涵盖商品、订单、支付与营销等核心模块,并深入探讨性能优化、安全防护与智能化发展方向,助你掌握驱动数字商业的核心技术。
|
3月前
|
存储 NoSQL 前端开发
Redis专题-实战篇一-基于Session和Redis实现登录业务
本项目基于SpringBoot实现黑马点评系统,涵盖Session与Redis两种登录方案。通过验证码登录、用户信息存储、拦截器校验等流程,解决集群环境下Session不共享问题,采用Redis替代Session实现数据共享与自动续期,提升系统可扩展性与安全性。
270 3
Redis专题-实战篇一-基于Session和Redis实现登录业务
|
3月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
219 1
Redis专题-实战篇二-商户查询缓存
|
2月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
9月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
962 0
分布式爬虫框架Scrapy-Redis实战指南
|
8月前
|
消息中间件 存储 NoSQL
RocketMQ实战—6.生产优化及运维方案
本文围绕RocketMQ集群的使用与优化,详细探讨了六个关键问题。首先,介绍了如何通过ACL配置实现RocketMQ集群的权限控制,防止不同团队间误用Topic。其次,讲解了消息轨迹功能的开启与追踪流程,帮助定位和排查问题。接着,分析了百万消息积压的处理方法,包括直接丢弃、扩容消费者或通过新Topic间接扩容等策略。此外,提出了针对RocketMQ集群崩溃的金融级高可用方案,确保消息不丢失。同时,讨论了为RocketMQ增加限流功能的重要性及实现方式,以提升系统稳定性。最后,分享了从Kafka迁移到RocketMQ的双写双读方案,确保数据一致性与平稳过渡。
|
6月前
|
缓存 监控 NoSQL
Redis 实操要点:Java 最新技术栈的实战解析
本文介绍了基于Spring Boot 3、Redis 7和Lettuce客户端的Redis高级应用实践。内容包括:1)现代Java项目集成Redis的配置方法;2)使用Redisson实现分布式可重入锁与公平锁;3)缓存模式解决方案,包括布隆过滤器防穿透和随机过期时间防雪崩;4)Redis数据结构的高级应用,如HyperLogLog统计UV和GeoHash处理地理位置。文章提供了详细的代码示例,涵盖Redis在分布式系统中的核心应用场景,特别适合需要处理高并发、分布式锁等问题的开发场景。
444 41

相关产品

  • 云数据库 Tair(兼容 Redis)