Java-Interview-Advanced/docs/high-concurrency/redis-production-environment.md
2020-04-25 19:55:58 +08:00

20 lines
1.7 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 面试题
生产环境中的 redis 是怎么部署的?
## 面试官心理分析
看看你了解不了解你们公司的 redis 生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的 redis 是主从架构?集群架构?用了哪种集群方案?有没有做高可用保证?有没有开启持久化机制确保可以进行数据恢复?线上 redis 给几个 G 的内存?设置了哪些参数?压测后你们 redis 集群承载多少 QPS
兄弟,这些你必须是门儿清的,否则你确实是没好好思考过。
## 面试题剖析
redis cluster10 台机器5 台机器部署了 redis 主实例,另外 5 台机器部署了 redis 的从实例每个主实例挂了一个从实例5 个节点对外提供读写服务每个节点的读写高峰qps可能可以达到每秒 5 万5 台机器最多是 25 万读写请求/s。
机器是什么配置32G 内存+ 8 核 CPU + 1T 磁盘,但是分配给 redis 进程的是10g内存一般线上生产环境redis 的内存尽量不要超过 10g超过 10g 可能会有问题。
5 台机器对外提供读写,一共有 50g 内存。
因为每个主实例都挂了一个从实例所以是高可用的任何一个主实例宕机都会自动故障迁移redis 从实例会自动变成主实例继续提供读写服务。
你往内存里写的是什么数据?每条数据的大小是多少?商品数据,每条数据是 10kb。100 条数据是 1mb10 万条数据是 1g。常驻内存的是 200 万条商品数据,占用内存是 20g仅仅不到总内存的 50%。目前高峰期每秒就是 3500 左右的请求量。
其实大型的公司,会有基础架构的 team 负责缓存集群的运维。