草庐IT

decoded_key

全部标签

php - Redis + phpredis 丢失 key ——内存溢出?

Redis的新手,在只有512MbRAM的小盒子上用php测试它,使用phpredis客户。将3m个整数值插入到一个集合中。但是该集合的sCard()方法仅返回大约270k计数。这是我遇到的内存限制吗?如何在插入时检查错误?应用程序:有两个二进制文件存储四字节无符号整数序列,我想将其加载到Redis中以进行快速内存差异。这是我的插入方法(跳过错误检查行):functionloadToRedis($id,$filename){$length=filesize($filename)/4;//howmanyidsarethere?Eachis4bytes.$divisor=100;//how

lua - 我将使用什么命令使 Redis 中的 key 过期,这些 key 的生存时间少于 5 天?

我的数据库中的session被设置为哈希:1)"sid:lpg3um654ckqp7tj7fkr2qs2Zz"(thishasattlofaweek)2)"sid:lpg3um654ckqp7tj7fkr2qs2Yy"(thishasattlof6days)3)"sid:g6sftph5dnun5bk6l0hqyyh6p5"(thishasattlof5days)4)"sid:g6sftph5dnun5bk6l0hqyxh6x3"(thishasattlof4days)5)"sid:g6sftph5dnun5bk6l0hqyxh4t1"(thishasattlof3.5days)我知道

lua - 我将使用什么命令使 Redis 中的 key 过期,这些 key 的生存时间少于 5 天?

我的数据库中的session被设置为哈希:1)"sid:lpg3um654ckqp7tj7fkr2qs2Zz"(thishasattlofaweek)2)"sid:lpg3um654ckqp7tj7fkr2qs2Yy"(thishasattlof6days)3)"sid:g6sftph5dnun5bk6l0hqyyh6p5"(thishasattlof5days)4)"sid:g6sftph5dnun5bk6l0hqyxh6x3"(thishasattlof4days)5)"sid:g6sftph5dnun5bk6l0hqyxh4t1"(thishasattlof3.5days)我知道

redis - Redis 内部是如何实现 Key * 的?

我想知道RedisKey*的内部实现。我正在实现分布式缓存功能。 最佳答案 “KEYS*”命令的内部行为是线性扫描主字典以收集所有键,并构建结果。过期的key被排除在外。这是实现:voidkeysCommand(redisClient*c){dictIterator*di;dictEntry*de;sdspattern=c->argv[1]->ptr;intplen=sdslen(pattern),allkeys;unsignedlongnumkeys=0;void*replylen=addDeferredMultiBulkLeng

redis - Redis 内部是如何实现 Key * 的?

我想知道RedisKey*的内部实现。我正在实现分布式缓存功能。 最佳答案 “KEYS*”命令的内部行为是线性扫描主字典以收集所有键,并构建结果。过期的key被排除在外。这是实现:voidkeysCommand(redisClient*c){dictIterator*di;dictEntry*de;sdspattern=c->argv[1]->ptr;intplen=sdslen(pattern),allkeys;unsignedlongnumkeys=0;void*replylen=addDeferredMultiBulkLeng

lua - 如何使用 Lua 和 ServiceStack Redis 向 Redis 添加 key

我正在使用C#和名为ServiceStackRedis的Redis客户端。我想使用Lua脚本向Redis添加key。目前我使用一个循环来测试这个但没有添加任何键。我究竟做错了什么?请参阅下面的代码。using(varredisClient=GetPooledRedisClient()){StringBuilderluaScript=newStringBuilder();luaScript.AppendLine("forvariable=0,10,1do");luaScript.AppendLine("redis.call('SET',KEYS[variable],'variable')

lua - 如何使用 Lua 和 ServiceStack Redis 向 Redis 添加 key

我正在使用C#和名为ServiceStackRedis的Redis客户端。我想使用Lua脚本向Redis添加key。目前我使用一个循环来测试这个但没有添加任何键。我究竟做错了什么?请参阅下面的代码。using(varredisClient=GetPooledRedisClient()){StringBuilderluaScript=newStringBuilder();luaScript.AppendLine("forvariable=0,10,1do");luaScript.AppendLine("redis.call('SET',KEYS[variable],'variable')

redis - Redis 中的最佳 key 哈希

我一直在redis的网站上阅读这篇关于使用HSET与SET来创建更优化的内存使用的文章:http://redis.io/topics/memory-optimization我的问题是我的key比这长得多。它们的形式是:ojit_代码例子:u:123456789u:123456789abcdefg分割key以与u:一起使用的最佳位置在哪里?我读过here,理想情况下每个“子集”中的项目不超过1000个。因此,在那种情况下,我会除以最后3个字符,从而在理论上每组中最多包含999个项目。不幸的是,用户ID不是那么可预测的,我不能保证良好的传播。例如,如果我在HSET处拆分,我无法保证以123

redis - Redis 中的最佳 key 哈希

我一直在redis的网站上阅读这篇关于使用HSET与SET来创建更优化的内存使用的文章:http://redis.io/topics/memory-optimization我的问题是我的key比这长得多。它们的形式是:ojit_代码例子:u:123456789u:123456789abcdefg分割key以与u:一起使用的最佳位置在哪里?我读过here,理想情况下每个“子集”中的项目不超过1000个。因此,在那种情况下,我会除以最后3个字符,从而在理论上每组中最多包含999个项目。不幸的是,用户ID不是那么可预测的,我不能保证良好的传播。例如,如果我在HSET处拆分,我无法保证以123

Redis - 安全地检索生产数据库中的一小组 key

我认为这个问题没有答案,但我希望有答案。在生产中,使用KEYS是一种不好的做法,因为它会扫描所有记录(O(n))。如果键的数量非常多,可能会影响性能。假设数据库中有大量的键,是否有任何安全的方法来获取其中的一些键?例如,如果我只是想看一张唱片,我真的不在乎我得到了什么。我知道这更像是一个设计问题(例如使用选择、使用集合),我永远不需要运行key,除非我知道数据库中没有大量数据。动机更多的是谨慎,所以我不会有一天运行key并杀死数据库,因为我在一个与我想象的不同的数据库中 最佳答案 推荐的方法(从v2.8开始)是使用SCAN命令(和s