码迷,mamicode.com
首页 > 系统相关 > 详细

redis和memcached在应用中的架构:水平拆分和垂直拆分

时间:2016-05-12 22:31:31      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

  redis和memcached,这两个都是当今非常火的内存数据库,要论流行程度,目前redis用的最多,性能上来讲,如果你把redis的aof和rdb功能全部禁用,只是把redis当做一个缓存来用的话,redis和mencached性能上差不了多少,我相信用redis的不大可能只是用它的缓存功能吧?

这篇文章主要的目的是讲讲redis和memcached的垂直拆分和水平拆分,这里我以redis进行举例,写起来方便点。

一:垂直拆分

redis的垂直拆分实际上和mysql的垂直拆分思路差不多,我们mysql上面的垂直拆分就是分库,那么按什么分库呢?当然是按照业务分库了,订单库,商品库,用户库等等,类比到redis实际上也是一样的

技术分享

原先我们可能业务量不大,或者说数据量不大,一台redis服务器就够用了,所以我们把商品,店铺,库存,促销规则等等数据都放入了,现在用户量上来了,一台机器不够存了,那么我们可以按照业务来划分,把商品,店铺,库存单独放到一台redis服务器上来存储。

二水平拆分

技术分享

水平拆分是我们使用了垂直拆分后,某些库的数据量还是增长过快的情况下才产生的,我们也称作为数据分片,如图我们把商品数据拆分成了三片,分片的路由规则我们通常是用哈希求余和哈希环算法来解决(redis用的是哈希槽)。当然不到万不得已不要使用水平拆分,redis和memcached都不支持这种做法,我们只能引入中间件,当然现在redis3.0现在可以进行服务端集群,但是它的功能不稳定,而且如果你要扩容的话需要手动对哈希槽进行再分配,很不方便,而且jedis客户端也有bug,连上集群会卡死。


redis和memcached在应用中的架构:水平拆分和垂直拆分

标签:

原文地址:http://blog.csdn.net/u011325787/article/details/51354138

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!