问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

分区:怎样将数据分布到多个redis实例

发布网友 发布时间:2022-04-30 21:13

我来回答

3个回答

懂视网 时间:2022-05-01 01:35

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/124.html?1455853509

薄荷 App 上的伙伴功能大量使用了内存数据库 Redis,随着数据量的快速增长,Redis 膨胀得很快,已经接近 12 GB规模,这些数据全部放在单个 Redis 实例中。单个巨大 Redis 实例有如下几个坏处:

1.首先,需要一台内存很大的机器。Redis 是内存数据库,它需要把所有需求全部放在内存中,需要为之装下 12 GB的 Redis 实例,至少需要 12 GB 内存大小的机器,考虑的预留增长空间,一般需要 12 * 1.5 约 18 GB 内存。 另外还有一个考虑的因素是,Redis 进行硬盘数据存储时,fork 进程需要消耗同样大小的内存,因此一个 12GB 的 redis 实例需要 32 GB左右的内存比较合适,这对机器提出了很高的要求,常常难以满足。

2.然后,Redis 容易成为性能瓶颈。Redis 的并发模型是单进程单线程,它不能充分利用多核 CPU,在请求数很高,或者某一些请求处理比较慢时(比如一些大的数据排序),可能会成为系统的性能瓶颈。有方法可以缓解甚至这个问题,就是建立多个 Redis 实例,通过多个 Redis 连接来实现。

3.另外,单个巨大的 Redis 实例也会增加数据管理难度,因为这么大的数据量,无论是复制,备份操作都比较慢,容易对线上系统造成冲击。

因此,十分有必要把单个巨大的 Redis 实例分割成多个小的 Redis 实例。

使用 Redis 的复制机制,可以在线平滑处理 Redis 实例分割,几乎不会对系统有很大的影响。

分割的具体操作思路如下:

1.首先,规划 Redis 分割策略,通常是基于业务划分,比如薄荷伙伴是基于业务分成 timeline, user_relationship, other 3个 Redis 实例。规划好之后,需要根据规划结果对应用程序中 Redis 程序代码做修改,通常是有一个统一的 Redis 链接修改为多个 Redis 连接,不同业务使用不同的连接。

2.然后,通过 Redis 复制功能建立多个 Redis 副本,让不同 Redis 连接使用不同的 Redis 副本,在 Redis 副本中删除多余的数据。批量删除某个模式的 keys,可以使用下面的 shell 命令:

代码如下:#p#分页标题#e#


redis-cli KEYS "<pattern>" | xargs redis-cli DEL

 

改成实际的模式,如

代码如下:


redis-cli KEYS "user:*:followers" | xargs redis-cli DEL

 

表示删除 user followers 数据。

最后通过来回切换并重启 Redis 实例达到完全分割 Redis 实例。

 

分割超大Redis数据库例子

标签:

热心网友 时间:2022-04-30 22:43

前面的两篇文章中,我们分别介绍了扩大与缩小SQL数据库环境之间的区别以及通过水平数据分区或垂直数据分区分解数据表。在本系列的最后一部分,我们将深入了解如何利用分布式分区视图来分解数据表。
分布式分区视图可以将来自一个或多个SQL Server数据库中的数据连接起来。当开发一个水平分区数据库环境时,你可以使用分布式分区视图将来自不同服务器的分区表连接起来,使得这些数据看起来像来自同一个服务器。
你可以设计这些视图,因此,如果你的潜在数据表结构设计合理的话,查询优化器就可以知道从那个数据表得到查询需要的数据,从而加速运行。一个设计合理的分布式分区视图还可以实现更新、插入和删除。我们将在本文的下一部分深入探讨它是如何实现这样操作的。
示例
本例中,我们假设SalesHistory表非常大,如果水平分割表中的各行记录到不同的服务器上,这将对我们很有利。每个服务器上的SalesHistory表的表结构是一样的,不过,一台服务器上存放该国东部地区的销售信息,而另外一台存放该国西部地区的销售信息。
我们根据Region(地区)字段和SaleID 来区分表中的各条记录。其中SaleID字段是整型数据域,我们为该国不同的地区设定了不同的SaleID。
这个字段对于设计概念来说非常重要,因为这是我们用来作为分区键值字段。(注意:要在缩小场景中进行表的设计,这一点极其重要,因为这样表中的各行是唯一的,从而可区别于其它服务器上的表。)这个字段集合是分区键。
设计很多SaleHistory表,根据所在的表SaleID始终是唯一可区别的。我们可以通过CHECK约束来实现这一点。
我们将使用两个独立的SQL Server实例,对于本例,这两个实例在同一台机器上。服务器的名字叫Chapman,实例分别称为实例A和实例B。这两个实例都是SQL Server 2005开发版,允许远程连接以及Windows和SQL Server认证。
使用脚本创建SalesDB数据库,设置每台服务器的lazy schema validation选项,使用该选项在SQL Server中通过确保在确实需要服务器上的数据时才进行服务器链接请求来提高性能。
列表A中的脚本需要在两个数据库实例上运行。列表B用来创建SalesDB数据库中的读者登录及用户,该脚本也需要在两个数据库实例上运行。

热心网友 时间:2022-05-01 00:01

分区类型:
Redis 有两种类型分区。 假设有4个Redis实例 R0,R1,R2,R3,和类似user:1,user:2这样的表示用户的多个key,对既定的key有多种不同方式来选择这个key存放在哪个实例中。也就是说,有不同的系统来映射某个key到某个Redis服务。

范围分区:
最简单的分区方式是按范围分区,就是映射一定范围的对象到特定的Redis实例。
比如,ID从0到10000的用户会保存到实例R0,ID从10001到 20000的用户会保存到R1,以此类推。
这种方式是可行的,并且在实际中使用,不足就是要有一个区间范围到实例的映射表。这个表要被管理,同时还需要各 种对象的映射表,通常对Redis来说并非是好的方法。

哈希分区:
另外一种分区方法是hash分区。这对任何key都适用,也无需是object_name:这种形式,像下面描述的一样简单:
用一个hash函数将key转换为一个数字,比如使用crc32 hash函数。对key foobar执行crc32(foobar)会输出类似93024922的整数。
对这个整数取模,将其转化为0-3之间的数字,就可以将这个整数映射到4个Redis实例中的一个了。93024922 % 4 = 2,就是说key foobar应该被存到R2实例中。注意:取模操作是取除的余数,通常在多种编程语言中用%操作符实现。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小红书怎么修改ID 专属ID更改方法 Win11如何更改字体视觉效果 Win11字体视觉效果修改方法介绍 华为团队管理模式 通信工程这个专业主要是学什么 专注力差的孩子该如何纠正 三岁的孩子专注力不好,怎么培养她的专注力呀!。 镇江关周围有什么玩的,镇江及周边旅游景点 大港南站去镇江汽车站怎么走 镇江汽车站到大港南站有多远 出国去澳大利亚留学都需要注意哪些事项呢? 澳大利亚留学条件及注意事项有哪些 我想设定手机卡的密码,但是不知道原始密码是多少,我应该怎么办? 手机卡密码忘了怎么办? 如何重置手机卡服务密码 手机怎么重置密码,我是联通卡? 手机卡的密码是不是可以免费重置的?怎样重置呢? 怎么对手机卡进行密码重置? 男生说瑟瑟的意思是什么意思咋回它? 给女孩说想他了,她发的涉涉发抖啥意思? 有点冷的句子 冻得发抖的幽默句子 女生说男生脾气暴躁吓得她瑟瑟发抖应该怎么回复 有个女的和我说今天穿的少冷的是什么意思? 女生说天气变幻无常让人瑟瑟发抖怎么回复? 女朋友说陪我看雪吧+有你在身边+就算冻的瑟瑟发抖+我也觉得浪漫怎样回复_百度问一问 女朋友说陪我看雪吧+有你在身边+就算冻的瑟瑟发抖+我也觉得浪漫怎样回复_百度问一问 三万块钱放中国银行卡 上如果一年都不用卡会被停止使用吗? 中国银行储蓄卡如果半年之内没有存取就会冻结吗 蚕的蚕蛾介绍 手机号异地怎么注销 蚕蛾身体分为什么,什么,什么,三部分 网络机顶盒可以录像录制节目吗? 手机卡,服务密码重置后,密码是多少? 我要办理手机卡重置服务密码该怎么办呢 用有线电视机顶盒录的视频是什么格式? 手机卡服务密码重置后是多少 中山市精明金属制品厂怎么样? 中山市泽瑞金属制品有限公司怎么样? 如何用DVD录像机录制机顶盒节目 中山市钢元金属制品有限公司怎么样? 采集卡录制机顶盒节目应该用什么软件,选择什么格式、编码录制? 中山市利信金属制品有限公司怎么样? 中山骏伟金属制品有限公司怎么样? 怎么用usb采集卡连接机顶盒录节目? 中山市金卓金属制品有限公司怎么样? 中山市钰圣金属制品有限公司怎么样? vivo手机桌面解锁出现白色方块怎么更换 vivo手机开机密码页面出现白色背景框 中山市广兴隆金属制品有限公司怎么样? 中山市精美大师金属制品有限公司怎么样? 中山市粤高金属制品有限公司怎么样?