草庐IT

stack-dump

全部标签

redis - 用于开发目的的 Radis : cut dump. rdb

我有一个包含8GB数据的dump.rdb文件。由于redis将从RAM中读取,我想在我的本地开发机器上启动redis-server并使用较小的数据量。是否有可能从dump.rdb中删除大约95%的key,以便拥有一个只有几千个key的测试转储文件,而不是我在生产服务器上拥有的8个MiO。 最佳答案 您必须使用完整的RDB启动一个新实例,然后删除键以找到您想要的内容,然后保存该RDB并在您的开发机器上使用它。没有直接更改RDB文件的native方法。 关于redis-用于开发目的的Radi

c - Redis 模块 : calling dump command in module return nothing

我开发了一个调用nativeredisDUMP命令的redis模块。但是当我在现有key上调用转储命令时,没有任何返回,但是如果我用GET替换DUMP命令,则返回值代码如下:#include"redismodule.h"#include#includeintmydump_command(RedisModuleCtx*ctx,RedisModuleString**argv,intargc){REDISMODULE_NOT_USED(argc);RedisModule_AutoMemory(ctx);RedisModuleCallReply*rep=RedisModule_Call(ctx

Redis数据库文件(dump.rdb)删除95%key后不缩水

使用DEL命令全部删除了超过95%的可能键。保存和bgsave后的数据库转储文件仍然与删除前相同。我还注意到内存(used_memory_human:160.96M)仍然和之前保存的一样高。我只剩下7669把key了。键空间db1:keys=7669,expires=145,avg_ttl=13314857删除key后如何压缩内存和数据库? 最佳答案 RDB和used_memory的大小是您在Redis中拥有的实际数据量。这意味着剩余的7669个key占据了这个空间——无论是隐藏在其中的一个大key、几个大key还是所有key,每个

node.js - 范围错误 : Maximum call stack size exceeded - nodejs,

我正在尝试从Redis中删除大量键(~20M),但由于过度递归调用,我收到错误消息RangeError:Maximumcallstacksizeexceeded。我尝试在递归调用中使用process.nextTick()但仍然遇到相同的错误。count="100";cursor="0";functionscanRedis(key,callback){redisClient.scan(cursor,"MATCH",key,"COUNT",count,function(err,reply){if(err){throwerr;}cursor=reply[0];if(cursor==="0"&

c# - Service Stack Redis 连接的线程安全

我最近在使用ServiceStack时遇到了一些问题-我发现这似乎是由多个线程引起的,每个线程都连接到Redis以执行操作。如果我在任何时候只有一个线程运行,它工作正常,但如果再运行,我会收到几个不同的错误。我在别处看到最好使用PooledRedisClientManager并在其上调用GetClient,但它仍然给我带来麻烦。我只想知道Redis是否是线程安全的,以及您可以采取哪些步骤来确保它不会在并发线程上中断。我已经创建了一个专门用于测试的程序,如下所示。classProgram{staticIRedisClientredis=newPooledRedisClientManage

redis - 从 dump.rdb 恢复在 docker 上运行的 redis

我想做的是使用我从生产服务器获取的dump.rdb,并在我的开发环境中使用它,它由一个非常简单的组合文件定义。为简单起见,假设我的应用与此composeexamplefromthedockerdocs相同对于redis和flask,所以docker-compose.yml看起来像:version:'2'services:web:build:.ports:-"5000:5000"volumes:-.:/codedepends_on:-redisredis:image:redis这会在重启之间保留redis数据,但您无法访问redis文件,因为在docker-compose.yml中没有为

redis - 为什么一个 500MB 的 Redis dump.rdb 文件需要大约 5.0GB 的内存?

实际上,我有3个Redis实例,我将它们放在了这个500MB以上的dump.rdb中。Redis服务器可以读取这个dump.rdb,似乎一切正常。然后我注意到redis-server成本超过5.0GB内存。我不知道为什么。我的文件有问题吗?我的数据库有大约300万个键,每个键的值是一个包含大约80个整数的列表。我用这个METHOD将3个实例放在一起。PS:另外一个dump.rdb,同样大小,同样key-value结构,只占用1GB内存。我的数据看起来像keyNum->{num1,num2,num3,......}。所有数字都在1到4,000,000之间。那么我应该使用List来存储它们

redis dump.rdb/保存小文件

上下文我正在使用Redis。数据库但是,我想每天备份一次。我也在UbuntuServer12.04上运行当输入时:redis-clisave我不知道dump.rdb保存到哪里(因为redis是作为服务启动的,而不是在我的本地目录中)。问题:我如何找到redis将我的dump.rdb保存到哪里?有没有什么办法可以指定一个文件名来“保存”,所以我输入如下内容:redis-clisave~/db-2012-06-24.rdb谢谢 最佳答案 为了更有帮助...如何查找或设置redis保存dump.rdb文件的位置(ubuntu服务器):首先

redis:备份dump.rdb

上下文我有一个实时运行的redis服务器。我要备份。想法:我想做以下事情:cpdump.rdb~/some-other-location/06-24-2012.rdb?关注我没有看到任何东西向我保证dump.rdb始终是一个一致的数据库存储。(即,在我看来,当我执行cp时,redis可能正在写入一些数据,因此dump.rdb不处于一致状态。)问题:这很糟糕,因为我现在必须关闭redis数据库才能复制dump.rdb问题:当redis服务器运行时,对数据库进行实时备份的正确方法是什么?手册的哪一部分向我保证此方法创建的数据库处于一致(不是半写)状态。谢谢! 最

ios - Swift 和 Stack 粉碎保护

如何在纯swift应用程序中启用StackSmashingProtection?我确实尝试在xCode的项目build设置选项卡下将“-fstack-protector-all”标志放入其他C++标志,但似乎该标志未使用或对构建的应用程序没有影响。为了验证构建,我正在使用otool-IvAppBinary|grep堆栈。 最佳答案 在Swift中,Stacksmashing默认启用,只需要在objective-c应用程序的build设置下添加“-fstack-protector-all”标志。如何检查堆栈粉碎是否启用。运行otool