国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

直接上手!Redis在海量数据和高并发下的优化实践

发布时间:2019/06/25标签:   用户    点击量:

原标题:直接上手!Redis在海量数据和高并发下的优化实践
Redis 关于处置互联网技巧工程师来讲并不生疏,简直全部的大中型企业都在应用 Redis 作为缓存数据库。然而关于绝大少数企业来讲只会用到它的最基本的 KV 缓存功效,另有许多 Redis 的高等功效能够都不曾当真实际过。来自掌阅的工程师钱文品将为各人带来:《Redis 在海量数据和高并发下的优化实际》的主题分享。他将缭绕 Redis 分享在平常的平常营业开辟中碰到的 9 个典范案例,盼望经过此次分享能够关心各人更好的将 Redis 的高等特征利用到平常的营业开辟中来。掌阅电子书浏览软件 ireader 的总用户量大略是 5 亿阁下,月活 5000 万,日活近 2000 万 。效劳端有 1000 多个 Redis 实例,100+ 集群,每个实例的内存操纵在 20G 以下。KV 缓存第一个是最基本,也是最罕用的就是 KV 功效,咱们能够用 Redis 来缓存用户信息、会话信息、商品信息等等。上面这段代码就是通用的缓存读取逻辑:defget_user(user_id):user=redis.get(user_id)ifnotuser:user=db.get(user_id)redis.setex(user_id,ttl,user)//设置缓存过时时光returnuserdefsave_user(user):redis.setex(user.id,ttl,user)//设置缓存过时时光db.save_async(user)//异步写数据库这个过时时光十分主要,它平日会和用户的单次会话长度成反比,保障用户在单次会话内只管始终能够应用缓存外面的数据。固然假如贵公司财力薄弱,又极致重视机能休会,能够将时光设置的长点乃至罗唆就不设置过时时光。当数据量一直增加时,就应用 Codis 或许 Redis-Cluster 集群来扩容。除此以外 Redis 还供给了缓存形式,Set 指令不用设置过时时光,它也能够将这些键值对依照必定的战略停止镌汰。翻开缓存形式的指令是:config set maxmemory 20gb ,如许当内存到达 20GB 时,Redis 就会开端履行镌汰战略,给新来的键值对腾出空间。这个战略 Redis 也是供给了许多种,总结起来这个战略分为两块:规定镌汰范畴,抉择镌汰算法。比方咱们线上应用的战略是 Allkeys-lru。这个 Allkeys 表现对 Redis 外部全部的 Key 都有能够被镌汰,不论它有没有带过时时光,而 Volatile 只镌汰带过时时光的。Redis 的镌汰功效就比如企业碰到经济隆冬时须要勒紧裤腰带过冬停止一轮残暴的人材优化。它会抉择只优化常设工呢,仍是全部人一概同等都能够被优化。当这个范畴圈定以后,会从当选出多少个名额,怎样抉择呢,这个就是镌汰算法。最罕用的就是 LRU 算法,它有一个缺点,那就是名义工夫做得好的人能够逃过优化。比方你伺机抓紧在老板眼前好好表示一下,而后你就保险了。以是到了 Redis 4.0 外面引入了 LFU 算法,要对平常的成就也停止考察,只做名义工夫就曾经不敷用了,还要看你平常勤不勤劳。最初另有一种极不罕用的算法:随机摇号算法。这个算法有能够会把 CEO 也给镌汰了,以是个别不会应用它。散布式锁上面咱们看第二个功效:散布式锁,这个是除了 KV 缓存以外最为罕用的另一个特点功效。比方一个很无能的资深工程师,开辟效力很快,代码品质也很高,是团队里的明星。以是诸多产物司理都要来烦他,让他给本人做需要。假如统一时光来了一堆产物司理都找他,他的思绪呢就会堕入凌乱,再优良的顺序员,大脑的并发才能也好不到那里去。以是他就在本人的办公室的门把上挂了一个请勿打搅的牌子,当一个产物司理来的时间先看看门把上有没有这个牌子,假如没有呢便可以出去找工程师谈需要,谈之前要把牌子挂起来,谈完了再把牌子摘了。如许其余产物司理也要来烦他的时间,假如瞥见这个牌子挂在那边,便可以抉择睡觉等候或许是先去忙其余事。如是这位明星工程师今后取得了安静。

版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号