草庐IT

prefix_keys

全部标签

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

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

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

redis - 当 Redis 被驱逐到可用内存或过期时,它可以转储 key 吗

我想这样使用Redis从文件db加载条目(由用户读取/编辑),设置在一段时间内过期在Redis上编辑和阅读它们当它被Redis自动删除时(当它被删除时)存储回文件db被驱逐到可用内存或已过期) 最佳答案 这不是Redis在OOTB中做的事情,但只要稍加努力就可以实现。有关更多信息,请参见:https://stackoverflow.com/a/25827681/3160475 关于redis-当Redis被驱逐到可用内存或过期时,它可以转储key吗,我们在StackOverflow上找到