首页 存档 技术 查看内容

千亿级高性能 KV 存储生态圈

2018-3-30 13:00 |来自: 互联网 476 0

摘要: 女主宣言本文源自4月20日『高效开发运维』微信群的在线分享,分享者为360Web平台部DBA团队的张恒,本文infoQ的『高效开发运维』公众号首发,已授权转载。 PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术 ...

女主宣言

本文源自4月20日『高效开发运维』微信群的在线分享,分享者为360Web平台部DBA团队的张恒,本文infoQ的『高效开发运维』公众号首发,已授权转载。

PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!

一、背景介绍

随着360公司业务发展,业务使用kv存储的需求越来越大。为了应对kv存储需求爆发式的增长和多使用场景的需求,360web平台部致力于打造一个全方位,适用于多场景需求的kv解决方案。目前,我们线上大规模使用的kv存储有Redis,Redis cluster以及Pika。

为什么说是爆发式的需求增长呢?早在2015年9月份,公司Redis的日访问量还处于800亿,到了2016年第三季度日访问量已经突破2500亿,2017年第一季度日访问量已经接近4000亿。短短的一年半时间,日访问量增长了5倍。下面给大家分别简单介绍一下Redis,Redis Cluster以及Pika的特点和使用场景。

二、kv存储之Redis
1、Redis介绍

Redis做为大家熟知的开源内存数据库,在很多项目中被广泛的使用。它支持String、Hash、List、Set、Zset、Geo、Hyperloglogs等多数据结构。同时也支持主从复制、Lua脚本、事务、数据持久化、高可用和集群化等等

2、Redis特性

1)高性能:Redis虽然是单线程的,但是它同样拥有着超高的性能。我们线上的普通PC Server上,经过测试,每秒请求数OPS能够达到10w左右。

2)多样化数据结构:Redis支持String、Hash、List、Set、Zset、Geo等多数据结构。

3)持久化:RDB持久化:快照式持久化方式,将内存中的全量数据dump到磁盘。它的优势是加载速度比AOF快,劣势是快照式的全量备份,没有增量数据,造成数据丢失。

AOF持久化:AOF记录Redis执行的所有写操作命令。恢复数据的过程相当于回放这些写操作。使用AOF的持久化方式,优势是有灵活的刷盘策略,保证数据的安全性。劣势是AOF文件体积比RDB大,占用磁盘多,数据加载到内存的数据慢。

4)多重数据删除策略:

①惰性删除:当读/写一个已经过期的key时,会触发惰性删除策略,删除掉这个过期key。

②定期删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key。

③主动删除:当前已用内存超过maxmemory限定时,触发主动清理策略,该策略由启动参数的配置决定,可配置参数及说明如下:

  • volatile-lru:从已设置过期时间的样本中根据LRU算法删除数据 (redis3.0之前的默认策略)

  • volatile-ttl:从已设置过期时间的样本中挑选过期时间最小的数据删除

  • volatile-random:从已设置过期时间的样本中随机选择数据删除

  • allkeys-lru:从样本中根据LRU算法删除数据

  • allkeys-random:从样本中任意选择删除数据

  • noenviction:禁止从内存中删除数据 (从redis3.0 开始默认策略)

maxmemory-samples 删除数据的抽样样本数,redis3.0之前默认样本数为3,redis3.0开始默认样本数为5,该参数设置过小会导致主动删除策略不准确,过大会消耗多余的cpu。

5)高可用:Redis自身带有哨兵的组件,可以监控Redis主从的运行状态和自动的故障切换,实现Redis的高可用。

3、Redis使用场景

一般场景:OPS

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部