五分钟系列之Redis大规模数据存储简述
展开全部
互联网场景下面临的主要技术问题之一是高并发大数据量。为了提高性能保护数据库通常会在数据库之上加一层缓存。目前常用的缓存是Redis,那么Redis如何存储大规模数据?如何将数据库的数据同步到Redis?Redis缓存设计要注意哪些问题?
Redis大规模数据存储通过集群实现。目前常见的集群方式有三种方案。
第一种使用Redis自带的集群技术Redis cluster。
第二种是使用代理方式,在客户端与Redis节点之间加一层代理服务目前开源的实现有codis和twemproxy。
第三种是定制客户端实现,在客户端实现节点的寻址功能。
数据库数据同步到缓存目前常见的方式有四种方式。
方式一在业务应用服务中实现。在修改数据库的同时更新缓存。
方式二通过消息队列异步更新。在业务中更新数据后发送消息,消息消费者订阅消息对缓存进行更新。
方式三通过定时任务更新。通过定时任务监控数据变更,同步更新数据到缓存。
方式三通过数据库Binlog更新。通过一些开源中间间如canal订阅数据库日志更新,解析日志然后对解析后的日志执行缓存更新操作。
缓存设计需要注意下面四个问题。
数据一致性问题。
数据库和缓存数据保持一致。目前常见的四种缓存更新模式。cache aside、read through 、write through、write behind caching。
缓存穿透问题。
目前解决缓存击穿的思路主要是过滤无效请求。如通过键的规则校验过滤恶意请求,布隆过滤器过滤无效请求。其次是缓存空结果。
缓存击穿问题。
目前解决缓存击穿的思路是对请求加全局锁,还有就是对即将过期的数据进行主动刷新。
缓存雪崩问题。
缓存雪崩目前常见的思路是设置缓存过期时间时随机设置失效时间避免缓存同时失效。还有缓存存储时划分更小的缓存区间按区间设置缓存失效时间。
缓存的使用是一个整体方案分层分布式设计。上述只是整体性描述,实际过程中的细节很多也很复杂。
Redis大规模数据存储通过集群实现。目前常见的集群方式有三种方案。
第一种使用Redis自带的集群技术Redis cluster。
第二种是使用代理方式,在客户端与Redis节点之间加一层代理服务目前开源的实现有codis和twemproxy。
第三种是定制客户端实现,在客户端实现节点的寻址功能。
数据库数据同步到缓存目前常见的方式有四种方式。
方式一在业务应用服务中实现。在修改数据库的同时更新缓存。
方式二通过消息队列异步更新。在业务中更新数据后发送消息,消息消费者订阅消息对缓存进行更新。
方式三通过定时任务更新。通过定时任务监控数据变更,同步更新数据到缓存。
方式三通过数据库Binlog更新。通过一些开源中间间如canal订阅数据库日志更新,解析日志然后对解析后的日志执行缓存更新操作。
缓存设计需要注意下面四个问题。
数据一致性问题。
数据库和缓存数据保持一致。目前常见的四种缓存更新模式。cache aside、read through 、write through、write behind caching。
缓存穿透问题。
目前解决缓存击穿的思路主要是过滤无效请求。如通过键的规则校验过滤恶意请求,布隆过滤器过滤无效请求。其次是缓存空结果。
缓存击穿问题。
目前解决缓存击穿的思路是对请求加全局锁,还有就是对即将过期的数据进行主动刷新。
缓存雪崩问题。
缓存雪崩目前常见的思路是设置缓存过期时间时随机设置失效时间避免缓存同时失效。还有缓存存储时划分更小的缓存区间按区间设置缓存失效时间。
缓存的使用是一个整体方案分层分布式设计。上述只是整体性描述,实际过程中的细节很多也很复杂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
法本信息技术
2024-10-28 广告
2024-10-28 广告
企业规划和实施一个成功的大数据方案需要从多个方面综合考虑。首先,企业需要明确自身的业务需求,确定大数据方案的目标和期望达成的效果。接着,进行大数据技术的调研和选型,选择适合企业业务需求的技术栈和工具。然后,制定详细的大数据方案实施计划,包括...
点击进入详情页
本回答由法本信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询