草庐IT

min_value

全部标签

Redis zrangebyscore 性能,当 min 为 -inf 时

zrangebyscore的时间复杂度是O(Log(N))如果我使用min=-inf运行zrangebyscore并限制为1,它会不会低于O(log(n))?或O(1)? 最佳答案 ZRANGEBYSCORE是O(Log(N)+M),其中“N”是已排序集合中元素的数量,“M”是被返回的元素。因此,您的复杂度计算需要考虑集合中元素数量加一的对数。ZRANGEBYSCORE-RedisDocumentation 关于Rediszrangebyscore性能,当min为-inf时,我们在Sta

Redis key - value 值的版本控制

如果我使用Redis作为键-值存储并使用同一个键多次更新值。我可以检索以前版本的值吗?例如更改值5次,但检索3次更新的版本谢谢 最佳答案 您认为您可以通过抓取AOF文件以更改该键来实现此目的,但Redis不支持获取键的历史值。 关于Rediskey-value值的版本控制,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/55414945/

c# - 使用 StackExchange.Redis 时出现错误 'WRONGTYPE Operation against a key holding the wrong kind of value'

我使用以下代码通过StackExchange.Redis将数据推送到REDIS,有时在生产中出现错误“针对持有错误类型值的键的WRONGTYPE操作”。privatestaticIDatabaseRedisDB=null;privatestaticConnectionMultiplexerredisConnection=ConnectionMultiplexer.Connect($"IPAddress:port,allowAdmin=true,ConnectTimeout=30000,connectRetry=5,syncTimeout=30000,abortConnect=false

Redis 的 Spring Data : when dealing with values, 是否仅适用于 StringRedisTemplate?

在使用SpringDataforRedis处理字符串时,我注意到以下行为:给定以下代码:template.opsForValue().set("person","value");它仅在我使用StringRedisTemplate的实例时有效,而在我使用RedisTemplate的实例时无效。它不应该与RedisTemplate一起使用吗,因为它聚合了所有Redis数据类型的所有操作? 最佳答案 StringRedisTemplate只是RedisTemplate的特化,因此如果您愿意,您应该能够直接使用RedisTemplate,前

redis - 获得 key :value on expiry 通知的方法

我有传入的数据,我必须聚合一段时间,并在key过期时处理数据。我尝试过使用redis键空间通知,但它只提供了键。有没有更好的方法来处理这种情况? 最佳答案 不是设置到期日,而是将数据聚合到列表中或根据您的用例进行设置。在key本身中放置一个时间戳。比如你要聚合1小时的数据,你的key可以是mydata:2018-26-06-1300,mydata:2018-26-06-1400,mydata:2018-26-06-1500等等。然后您只需每小时运行一次cron作业,从键中读取所有值,并在完成后删除键。

Redis 是 key to key to value 的可能

我想我正在尝试在Redis中设计一个结构,这可能是错误的。这是我要存储的结构Accountnumber1MACAddress1->{serializeddata}MACAddress2->{serializeddata}Accountnumber2MACAddress3->{serializeddata}MACAddress4->{serializeddata}我想通过帐号访问数据并获取与其值关联的MAC。我也想通过MAC访问它。从我读到的内容来看,很多都不是很有效率。我想我应该创建2组,一组使用Account到MAC列表,另一组MAC到序列化数据,如下所示AccountNumber1

java - Redis数据结构: key -> field -> list of values Is this possible?

在Redis(使用Jedis)中是否可以按如下结构存储数据?key|-fieldA||-value1||-value2||-value3||-fieldB|-value4|-value5|-value6 最佳答案 Redis在技术上不支持您想要的数据结构。有一些解决方法;一个简单的方法是为每个字段创建一个单独的列表,使redis键成为您的键和特定字段的组合。例如:LPUSHkey:fieldAvalue1value2value3LPUSHkey:fieldBvalue4value5value6另一种方法是使用散列,为您的值使用序列化

Redis GETSET - "Returns an error when key exists but does not hold a string value."

根据redisdocumentationGETSET命令当键存在但不包含字符串值时返回错误。它到底是什么意思?我为空值创建了GETSET,但它确实有效。 最佳答案 这意味着如果您尝试GETSET一个包含其他类型值的键,例如HASH、SET、LIST,你会得到一个错误。 关于RedisGETSET-"Returnsanerrorwhenkeyexistsbutdoesnotholdastringvalue.",我们在StackOverflow上找到一个类似的问题:

Python、redis : How do I set multiple key-value pairs at once

我有两个列表键=[k0,k1,....kn]vals=[v0,v1,....vn]我可以通过以下多个步骤在Redis上设置这些键值:对于范围内的我(0,len(键)):redis_con.set(键[i],vals[i])但这是多个集合操作。如何在一个异步步骤中完成此操作? 最佳答案 假设您想要一个单一的redis调用来设置操作:pipe=redis_con.pipeline()foriinrange(0,len(keys)):pipe.set(keys[i],vals[i])pipe.execute()

lua - redis lua - eval 在处理 Long.MAX_VALUE 时返回错误值

127.0.0.1:7501>eval"返回{1,2,9223372036854775807}"01)(整数)12)(整数)23)(整数)-9223372036854775808请帮助这个奇怪的行为。我知道lua只能通过失去一些精度来表示超过10^15的大数。我期望返回值为“9.2233720368548e+18”但不是负数。还可以127.0.0.1:7501>eval"返回{1,2,tostring(9223372036854775807)}"01)(整数)12)(整数)23)"9.2233720368548e+18"127.0.0.1:7501>eval"返回{1,2,tonumb