草庐IT

备份全分区

全部标签

Redis 在哈希键上分区?

看了redis分区文档,好像redis只支持全局key分区。我正在尝试将我的单个哈希分区到不同的机器中。有办法吗?例子:HSETmyhash"foo"123//Tomachine1HSETmyhash"bar"456//Tomachine2...HGETmyhash"foo"//Tomachine1HGETmyhash"bar"//Tomachine2... 最佳答案 没有办法做到这一点,它可能永远不会是那样的。 关于Redis在哈希键上分区?,我们在StackOverflow上找到一个

Redis缓存数据备份

我已经开始阅读有关Redis缓存的内容。在非常基本的层面上,它将数据存储在内存中,就像内存缓存中的任何其他数据一样。所以我的问题是如果它崩溃或重新启动,存储在其中的数据会发生什么。是否有任何持久性(数据备份策略)或数据会丢失?任何有关此功能的引用都会有所帮助。提前致谢!! 最佳答案 实现持久化有两种方式RDB持久性AOF持久化RDB持久化它会定期拍摄内存中数据的快照,然后替换现有数据。AOF持久化每次出现修改内存中数据集的写入操作时,Redis都会记录该操作,以便稍后播放。因此,要回答您的问题,这完全取决于您遵循的是什么配置。RDB

Redis故障备份模拟

我在Windows8机器上使用启用了RDB持久性的Redis服务器(2.4.6版)。我想模拟redis故障并重置,这样我可以对我的备份过程更有信心。我找到了很多关于redis持久化和备份的资料,但是我不知道一旦发生故障该怎么办。我尝试从数据文件夹中复制带有大量测试数据的dump.rdb,然后卸载/重新安装redis,将原始dump.rdb文件粘贴到新数据文件夹中并运行。当我运行命令“keys*”时,它显示空列表或集合。那么,如何模拟redis数据库故障,然后恢复呢?编辑:我在关闭redis之前覆盖了rdb文件,导致覆盖。现在这些是我为模拟故障和备份而采取的步骤。我停止redis服务我用

database - 为共享计数器对数据库进行分区

在数据存储的设计过程中,我们正在寻找一种对条目进行分区的方法。主要瓶颈是在对共享计数器进行分区时。比方说,我们要提供n张票(典型的火车预订,IRCTC等)。我们如何对数据存储进行分区,以便客户端看到它们之间的实时一致性(根据预订百分比,即currentvalue/x)。每次读取的聚合成本太高,任何其他指针都会有用。同时假设写入操作是并发的(因此不会将读取卸载到从属),并且对于最终一致性来说是没问题的。但是有没有办法可以最小化分片之间的不一致性差异。例如,100张票的部分在4个分片中完成,如25、25、25、25。在任何给定的时间点,数据库的View应该像x%一样满,以及如何最小化分片之

amazon-web-services - Elasticache Redis 自动备份到 S3

我想每天备份我的ElasticacheRedis集群。我可以在AWS上设置自动备份,但是我想知道如何将备份(.rdb文件)设置为每天在创建备份时导出到S3。 最佳答案 这有点hacky,但您可以结合使用cron和aws-cli来完成。您甚至可以(奖励积分)从awslambda运行cron,从而消除了对外部服务器的需求。您需要在您的lambda代码上安装aws-cli(参见:https://alestic.com/2016/11/aws-lambda-awscli/)。我没有尝试任何这些,但通过一些工作应该是可能的。

debugging - Redis RDB 备份因 RAM 使用率过高而失败

我注意到有几次,redis无法在大约50%以上的已用RAM上执行RDB备份,一旦我关闭一些消耗大量RAM的进程,它就会重新开始工作。例如,它无法在39GB已用RAM上进行备份,但在25GB上一切正常。服务器总RAM为64GB我如何调试正在发生的事情? 最佳答案 看看http://redis.io/topics/faq#background-saving-is-failing-with-a-fork-error-under-linux-even-if-i39ve-a-lot-of-free-ram如果您不更改该设置,您需要大约两倍于数

redis - 如何设置Redis Cluster Slave只做备份?

我想给Redis集群添加一个新的slave,目前有3个master和3个slave。但是新的slave只是为了bgsave,如果master发生fail-over就不能成为master了,我可以吗? 最佳答案 从这次提交开始,您似乎可以使用“cluster-slave-no-failover”选项:https://github.com/antirez/redis/pull/3041/files在这里讨论https://github.com/antirez/redis/issues/3021

redis - 使用 JedisCluster 写入 Redis 集群中的分区

我有一个Redis集群。我正在使用JedisCluster客户端连接到我的Redis。我的应用程序有点复杂,我想基本上控制我的应用程序将数据发送到哪个分区。例如,我的应用程序由子模块A、B、C组成。然后我希望子模块A中的所有数据都应该转到分区1。类似地,来自子模块B的数据应该进入分区2,依此类推。我正在使用JedisCluster,但我没有找到任何API来写入我集群上的特定分区。我假设我将在我的所有Redis节点上使用相同的分区名称,并且处理哪些数据将自动处理到哪个节点,但到哪个分区将由我处理。我尝试通过JedisCluster库https://github.com/xetorthio

php - 如何使用 Predis 验证客户端分区

我正在尝试通过Predis使用客户端分区。一切似乎都在工作,但我如何验证值是否存储在多个服务器上?我希望能够列出每台服务器上的所有key,但在predis文档中看不到如何操作。我尝试进行简单的信息调用,但出现异常错误:$predisClient->info()生成“无法在连接集群上使用‘INFO’”异常。(这在使用一台服务器时确实有效。)$predisClient->executeRaw(['CLUSTERINFO'])生成“无法在连接集群上使用‘CLUSTERINFO’”异常。我的$predisClient定义如下:$predisClient=newPredis\Client(['t

Redis 内存使用与备份占用的空间

我正在查看用于Web应用程序的Redis备份rdb文件。有4个这样的文件(用于同时工作的4个不同的redis服务器),大小为:13G+1.6G+66M+14M=~15G但是,这4个实例似乎占用了43.8GB内存(根据新遗迹)。为什么redis数据在内存和磁盘中占用的空间有如此大的差异?这可能是配置错误吗?可以解决这个问题吗? 最佳答案 我认为没有任何问题。首先,数据以压缩格式存储在rdb文件中,因此大小小于内存中的大小。rdb文件有多小取决于数据的类型,但它可以是redis使用的内存的20-80%左右您的内存使用量可能超过实际使用量