草庐IT

主从分片

全部标签

ElasticSearch--分片和副本--原理

原文网址:ElasticSearch--分片和副本--原理_IT利刃出鞘的博客-CSDN博客简介说明    本文介绍ES的分片和副本的原理。粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址什么是分片    Elasticsearch集群允许系统存储的数据量超过单机容量,这是通过shard实现的。在一个索引index中,数据(document)被分片处理(sharding)到多个

php - Predis 别名分片

我正在尝试通过别名使用Predis分片,如describedhere.我的代码基本相同,但我只返回空数组。我的哈希键周围需要{}吗?(编辑:不,只是试过了)$api->get("/test",function(){$servers=[["alias"=>"metadata","port"=>6380],["alias"=>"relations","port"=>6381],["alias"=>"dim_provider","port"=>6382],["alias"=>"dim_revctrcode","port"=>6383],["alias"=>"dim_enccode","por

redis - 分片 Redis 中的搜索和事务

问题涉及redis的分片配置。我已经用Java实现了一个小型测试应用程序,它以user:userID的形式在Jedis上创建了100.000个用户哈希。每个散列都有元素:姓名、电话、部门、用户ID。我还使用键phone:phonenumber创建了简单的键值对,其中包含userID,其电话号码是ID,并为每个部门设置了为该特定部门工作的userID。后两种类型我仅用于搜索。这些结构和搜索类似于Searchinginvaluesofaredisdb.简而言之,数据结构:user:userID->{name,department,phone,userID}department:depart

algorithm - Redis:大型键集的高效键分片

我遇到了超出服务器RAM容量的问题。我需要减小数据库大小,以便仍然可以使用Redis。我的应用程序是一个巨大的键/值存储,其中键是用户给定的文本字符串(目录/文件路径)。这些值是指向我创建的对象的非常简单的指针。所以它是一个对象存储。问题是我有一个PB的对象,其中一个对象可能是100K字节。我实际上可以将平均对象限制为不小于1M字节,因此10^15/10^6=10^9个对象。因为每个对象都需要一个key,即10^9,或1Gkey。如果每个键/值对为100个字节,则RAM中有100GB。这几乎适合具有128GBRAM的服务器,但它并不是服务器中唯一发生的事情。如果可以的话,我想减少足迹。

java - Google Kubernetes Engine - Redis 主从复制不会发生

我已经在GoogleKubernetesEngine下设置了一个集群并尝试了GuestBookRedis镜像(Java)。能够将key放到RedisMaster上,但是无法从Slave读取值。试图从Master本身读取它并找到相应的键及其值,但是从Slave读取失败,原因可能是复制没有发生。尝试了下面提供的方法页https://cloud.google.com/kubernetes-engine/docs/tutorials/guestbook(尝试使用JAVA)。我想redis-slave-controller.yaml有必要的配置来设置复制,但它仍然不起作用。有人可以帮忙解决这里可

redis - 跨redis分片的排序、并集交集

我是redis的新手。我需要知道排序、交集和其他聚合操作是如何跨分片进行的。是否可以执行这样的操作? 最佳答案 Redis不会透明地为你处理这个。您基本上需要从每个分片中检索结果,然后重新组合它们(假设您的搜索是针对分片键以外的其他内容)。一些库使Redis的分片更容易(参见predishttps://github.com/nrk/predis)。不过,基本上,您要做的是针对所有分片运行查询,返回结果,然后合并结果、排序、相交、聚合等。Redis集群项目大家不妨关注一下http://redis.io/topics/cluster-s

java - 将单实例 Redis 数据库移动到分片数据库?

我有一个非分片Redis数据库,我想将数据复制到分片数据库。我环顾四周,但我能找到的最佳做法是将转储文件导出到Json,然后将其重新加载到新的分片数据库实例,这样可以保留key哈希。感谢您的帮助。 最佳答案 RedisCluster仍在开发中,所以同时可以采取以下方法-如果您使用PHP、JAVA或scala,则Predis、Jedis和scala-redis支持客户端分片,即在客户端使用哈希在多个redis服务器之间平均分配负载。如果您不使用上述语言,请查看Redis-Sharding-https://github.com/kni/

redis - 访问多个 Redis 分片

您好,我将使用多个Redis实例和实例之间的一些分片。我的问题是,如果加载网页需要访问多个分片,性能是否会受到[明显的影响]。我的基本概述是在多个Redis分片之间实现负载平衡*下面的脚注,可能为此使用Twemproxy。并且只在一个分片上拥有与特定用户数据有关的所有内容(例如“喜欢”、“用户信息”、“保存列表”等),但也有多个包含对象的Redis实例(许多不同的对象)用户将访问)和有关所述对象的数据,这些对象也将为用户加载。我不需要对不同数据库中的多个键进行Redis操作,但我需要让Redis实例实时从n个实例返回m个键。为了与您彻底清白,我还计划使用类似这样的东西https://g

redis - 如何搭建一个简化的redis集群(支持数据分片和负载均衡)?

由于redis集群还在开发中,现阶段想自己搭建一个简单的。系统应支持数据分片、负载均衡和主从备份。初步方案如下:主从:在不同位置使用多个主从对来增强数据安全性。Matsters负责写操作,而masters和slaves都可以提供读服务。在一次写操作期间,数据被发送到所有主设备。主从之间使用Keepalived检测故障并自动切换主从。数据分片:在客户端写入一致性哈希,支持读写时数据分片,以防单机内存不够用。负载均衡:使用LVS将读请求重定向到相应的服务器进行负载均衡。我的问题是如何将LVS和数据分片结合在一起?例如,由于数据分片,所有key都被拆分存储在服务器A、B、C中,不重叠。考虑s

java - 分发(分片)集合(如列表、集合等)键的任何解决方法

我们使用Redis2.8.17作为JobQueues。我们正在使用RPUSH和BRPOPLPUSH来制作可靠的队列。根据我们当前的设计,多个应用程序服务器将(RPUSH)作业推送到单个作业队列。由于BRPOPLPUSH操作在Redis中是原子操作,作业稍后将被弹出(BRPOPLPUSH)并由任何服务器的消费者处理。由于应用服务器能够横向扩展,我有点担心REDIS将来可能成为瓶颈。我从有关redis分区的文档中了解到以下内容:“不可能像一个非常大的排序集那样使用单个巨大的键对数据集进行分片”我想知道预分片应用服务器队列是否是横向扩展的唯一选择。在上面的设计中,集群有什么可以做的吗?