为什么要誓死学好 Redis ?
TIME:2018-03-31
一个节日的晚上,那些加班的程序员在做什么?
每当过节的时候,我们在电脑边买买买,在视频上刷剧刷剧刷剧。当我们看的很爽的时候,买的很欢乐的时候,你一定不知道程序员在背后一直为你做着技术后盾。
我们最大的心愿就是让你玩的爽、看的多,那么在今天这种片子数不胜数、商品越来越多的网站上,要想抗住用户量,不让服务器挂掉,是要靠技术的。
什么技术让程序员们如此期待呢?
这就是 Redis 缓存技术。当用户量不大的时候,我们直接连数据库一点问题都没有。
但是随着人数越来越多,用户量也日趋增多,随随便便就100万 QPS(每秒内查询次数),只有能抗住 QPS,我们才会一直使用这个软件。
传统的数据库是很难实现的,这是因为关系数据库是有资源池的,但是资源池本事又有限,只要超过资源池的访问,数据库服务器就会挂掉。
小何是我们这里的程序员,每当节假日,他基本上会忙的很晚,他只在做一件事 — 监控用户量。
这个监控倒不是监控隐私信息,而是监控数据量大的时候,服务器的负载和内存是否能抗住。
其实当我问他现在累不累,他闷骚的笑容和日渐肥胖的身材告诉我,现在他很舒服了。
小何回想当年,每次我们公司搞秒杀、促销的时候,那叫一个痛苦啊。不是哪个机房的数据库挂掉了,就是线程阻塞了,整个公司程序员总是在不断重启中度过。
导致我们只能使用小米之前经常用的排队策略(顾名思义,就是限制了用户量,让一部分先进来的人抢商品,其他人就在外面等,里面哪个人抢完了以后,出来一个,排队的放一个)。
很悲催吧,这还不算。还有更多的无奈,比如用户小手一抖,买了,结果没付款,你想到的意外发生了,服务器挂了,用户付不了钱,各种压力吃给客服,导致客户小妹妹压力山大啊。
我们想这样子不行啊,于是我们决定使用 Redis。
那么,为什么我们选 Redis 呢?
首先 Redis 号称是史上最快的数据库,而且不需要重新改变原来的关系数据库(我们原来的数据库是 Mysql)。
其次 Redis 可以使用事务功能,不要小看事务功能,他能保证用户一系列的业务流程统一。
再次我们为了保证网络带宽,使用了 pipeline(流水线)功能。这个功能可以一次性把一堆命令一次性传到 Redis,减少了网络开销。
最后 Redis 的持久化,这是非常重要的机制,虽然 Redis 快,但是它的快是取决于它运行在内存中,一旦发生意外或者断电,就可能丢失重要信息。这个时候,持久化就起到作用了。
上了 Redis 后我们很快发现,原本只是为了减少客服压力的 Redis,后来支撑了我们业务的主要缓存架构,成为项目流程中重要的一环。
在《Redis 入门到分布式实践》中讲解如何用正确的姿势来使用 Redis,根据公司开发经验,我们团队会为大家讲解如何使用 Redis 以及高级功能;
具体安排:
-
为什么我们要使用 Redis :这里将系统的介绍 Redis 是什么,讲述他的八大互联网公司关注的功能;
-
API 的理解和使用: Redis 的 API 有7种数据类型,这七种数据类型可以帮助你更好的使用不同的业务场景;
-
如何使用 Redis 客户端: Redis 为各位准备好了各种语言的客户端。本次将讲解 Java 和 Python 常用的 Redis 客户端的使用,帮助你先会使用它。
-
Redis 的高级功能:你不单单要使用 Redis,还要了解 Redis 的高级功能,这些功能针对不同的业务,有更好的支持,帮助你更加高效的使用redis。
-
正确认识 Redis 持久化和开发运维问题:这里将为各位介绍 Redis 最重要的持久化,不至于丢失数据和日常开发运维最常用的一些问题。
-
高可用运维必学的 Redis 复制:我们经常遇到不同数据库的信息传递,保证数据的一致性,那么这个时候,Redis 复制功能,在生产环境显得特别重要。
-
Redis Sentinel 部署和运维:生产环境中当然不可能只有一台服务器,为了保证数据的完整性,我们需要对数据备份。这样在服务器挂了以后,能够快速恢复。
-
Redis Cluster —分布式解决方案:这是官方为我们提供的分布式的架构,能够让你根据不同的数据,按一定的规则分配不同的机器。同时当数据量超过服务器硬盘的时候,我们可以再次扩容服务器。
-
缓存设计与优化:大家知道对于大量的数据查询,我们不直接查询数据库,而是让 Redis 查询后,客户端请求时先查询缓存,不存在的时候再去查数据库。
但是你会发现这个设计其实是有问题的,当出现并发的时候,这个查询其实是很慢的。
上面的设计能解决单一请求,却不能并发,我们有一套正确的加锁处理,能够帮助你在高并发的时候如何提升效率的讲解。
这还不够,我们日常使用的是 Liunx 系统的运维,我们会教你如何正确的方法运维攻略;甚至系统的讲解如何正确的配置 Redis 集群和分布式方案。
之所以要讲解一整套 Redis 攻略,我发现很多新学 Redis 的朋友会误入歧途,总是以为 Redis 只要学好如何使用就好了。
其实 Redis 的操作是非常简单的,如果你阅读完如何使用 Redis 客户端,你会发现 Redis 的使用实在是 so easy。