61
回答
高手问答第 147 期 — Redis 开发与运维
华为云实践训练营,热门技术免费实践!>>>   

OSCHINA 本期高手问答(2017 年 3 月 28 日 — 4 月 4 日)我们请来了 @carlosfu (付磊)和 @张益军  为大家解答关于 Redis 开发与运维相关的问题。

@carlosfu  付磊,搜狐视频高级研发工程师,CacheCloud 项目联合创始人。拥有多年 Redis 开发运维经验,为公司多个核心业务提供 Redis 服务,同时热衷于技术传播和分享,撰写了大量关于 Redis 开发运维的技术文章。

@张益军搜狐视频资深研发工程师,CacheCloud 项目联合创始人,曾就职于美团、阿里巴巴等公司。搜狐视频投放组负责人,目前从事投放平台、反作弊等系统的架构设计和优化工作。研究兴趣包括海量峰值访问、分布式存储等。

随着互联网的飞速发展,我们享受着技术带来的便利,但同时也给从业者带来了如何保证项目高并发、低延时的技术挑战。Redis 以其出色的性能、丰富的功能、良好的稳定性、分布式架构的支持等特性,得到了业界广泛的关注和应用,在当今高性能架构中,也发挥着越来越重要的作用。甚至可以说,Redis 已经成为 IT 互联网大型系统的标配,熟练掌握 Redis 成为开发、运维人员的必备技能。

那么使用 Redis 有哪些优势、如何使用 Redis、使用和维护 Redis 时会碰到哪些问题?或者你还有其他任何关于 Redis 开发与运维的问题,欢迎踊跃来提问。

为了鼓励踊跃提问,@华章图书 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Redis 开发与运维一书。

本书从开发、运维两个角度总结了 Redis 实战经验,深入浅出地剖析底层实现,包含大规模集群开发与运维的实际案例、应用技巧。并且全面覆盖了 Redis 基本功能及应用,图示丰富,讲解细腻。

购买链接:http://item.jd.com/12121730.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Redis 开发与运维方面的问题向 @carlosfu  和 @张益军 提问,请直接回帖提问。

举报
局长
发帖于8个月前 61回/5K+阅
共有61个答案 最后回答: 7个月前

@carlosfu 老师,您好,曾经面试遇到这么一个问题,一直未解决,请帮忙看看:如何在redis中给1000000甚至10000000条数据排序?

--- 共有 2 条评论 ---
OSCsvn能否说的更具体一点? 8个月前 回复
carlosfu能否说的更具体一点? 8个月前 回复
@carlosfu 1,面对缓存穿透问题如何预防?2,分片热点问题如何解决?
--- 共有 1 条评论 ---
carlosfu你问的这几个问题,在书中11章有专门介绍。此外之前高可用架构公众号节选了本节的部分内容:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653548432&idx=1&sn=ac120e1ffca7c2007c0bc5df51e03d7b&scene=0#wechat_redirect 8个月前 回复

@carlosfu两个Redis在windwos环境下部署互为主从 就两个可以实现么如何实现 网上的都是一主二从三哨兵的模式

--- 共有 1 条评论 ---
carlosfu哨兵模式也就是在主从上加了监控,所以主从模式相对更简单,但无借助外力的话不是高可用的架构。 8个月前 回复
两位老师,如果使用redis做session集中式管理,有没有什么性能上的问题
--- 共有 1 条评论 ---
carlosfu性能问题要说明一下规模(数据量、访问量等等),麻烦说明一下。 8个月前 回复

@carlosfu 老师好 我有个两个疑惑

1 应用开发的原则,是否需要主动去删除不使用的key或者尽量都设置过期?

2 redis在启动时,是否会将持久化的数据一次性读入到内存中?如果持久化的数据大于内存怎么办?是否会造成持久化的数据丢失?

--- 共有 2 条评论 ---
carlosfu2. 我觉得和内存分配策略有关,具体可以参考书中第12章:https://cachecloud.github.io/2017/02/16/Redis%E7%9A%84Linux%E7%B3%BB%E7%BB%9F%E4%BC%98%E5%8C%96/ 8个月前 回复
carlosfu1. 对的,内存很宝贵。 8个月前 回复

@carlosfu 你好,可否讲解一下缓存穿透和缓存雪崩,有什么好的优化方案?还有就是如何寻找热点key,有什么好的方案?

--- 共有 1 条评论 ---
carlosfu你问的这几个问题,在书中11章有专门介绍。此外之前高可用架构公众号节选了本节的部分内容:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653548432&idx=1&sn=ac120e1ffca7c2007c0bc5df51e03d7b&scene=0#wechat_redirect 8个月前 回复

@carlosfu 您好,我想请教两个关于多核CPU和主从复制的问题:

1、redis在多核CPU服务器下,例如8核的CPU(服务器作为redis专用的服务器),部署几个redis实例更加合适?如果是为了提高多核CPU的利用率,在一台服务器上部署多个redis实例,然后进行实例间的主从复制,是否对提高并发访问能力有帮助?

2、在网络带宽良好的情况下,不同服务器上redis实例之间主从复制的延迟,一般主要受哪些因素影响?

--- 共有 5 条评论 ---
Li_Peng 回复 @carlosfu : 我在github上看到CacheCloud这个项目了,非常不错,谢谢。 8个月前 回复
carlosfu 回复 @Li_Peng : 可以的,我们团队都用了快三年了,具体可以看一下github上cachecloud的介绍,里面有使用规模。 8个月前 回复
Li_Peng 回复 @carlosfu : 感谢您的回答!如果是做分片的话,目前redis3.x版本中,redis cluster是否足够成熟,可用于生产环境了呢?还是选择codis会更稳妥一些呢? 8个月前 回复
carlosfu2. 以全量复制为例子,主要是fork的开销(硬盘、cpu、内存),所以一般不建议使用大的分片。还有就是网络传输会占用带宽。 8个月前 回复
carlosfu1. 单机多实例是对的,因为redis是单线程的(但要根据当前使用场景,例如持久化、并发量等决定个数),为了保证高可用可以用redis sentinel,如果需要水平扩展,可以考虑使用redis cluster或者codis。但原则是主从不在一个服务器。 8个月前 回复
顶部