草庐IT

acceptable-value

全部标签

mysql - Redis 排序 : How do I sort a redis hash key by given value?

我有一个庞大的Twitter用户数据库。基本上我需要为每个用户保存三个值。更新用户帐户的时间(last_update)最新推文id(latest_tweet_id)最早的推文id(earliest_tweet_id)我想将此数据移动到redis中以加快查询速度。这是它的工作原理:场景一每次我更新/检查用户的个人资料时,我都需要保存这次更新的时间。同时,我需要捕获用户最新和最早的推文ID(如果它们已更改)。这一点很简单,我可以弄清楚Redis哈希如何轻松管理此类数据。然而,我的困境是如何保持这些哈希按last_update值排序,以便我可以首先获取更新最少的记录,然后以循环方式轮换所有记

data-structures - Redis 哈希 : How to Query on both Key and Value

我想在Redis中存储键值对(T1,T2)。键和值都是唯一的。我希望能够查询键和值,即HGET(Key)应该返回相应的值,而HGET(Value)应该返回相应的键。一种简单的方法是在Redis(T1,T2)和(T2,T1)中创建2个哈希,然后查询适当的哈希。这种方法的问题是插入、更新或删除对将需要更新两个哈希。有没有更好的方法来满足我的要求... 最佳答案 如果T1、T2之一具有整数类型,您可以使用如下组合:1->foo2->barZADDmyset1fooZADDmyset2barZSCOREmysetfoo//returns1.

python - Redis - 错误 : value is not a valid float

我在Redis中有一个排序集。我正在尝试通过在Python代码中使用zincrby来更新特定元素的计数器值,例如:conn.zincrby("usersSet",float(1),"user1")但它显示错误如下:'错误:值不是有效的float'我在cli上尝试了相同的命令:zincrbyusersSet1users1它工作正常。Python代码中是否有任何其他方法来增加排序集中特定键的计数器值。 最佳答案 redis-cli和python连接器的参数顺序不同。你必须写conn.zincrby("usersSet","user1",

ruby-on-rails - 雷迪斯 : incr a value from a hget key

首先,我是Redis的新手,所以请耐心等待,因为我确信这是一个简单的解决方案。我正在尝试从我的散列中增加一个值。这就是我设置key'hsetuser:likes210'的方式,所以第一部分是我的key,然后是另一个key,即用户ID号,然后是值(10)。我需要做的是incr10到11的值,但我不确定该怎么做。我知道我可以使用'hgetuser:likes:total:count2'返回值,但是我如何使用incr命令以及hget同时命令?我正在使用RubyonRails通过使用redisgem的方式来实现它。 最佳答案 你想要HINC

node.js - 错误 : ERR value is not an integer or out of range from redis. 调用 ('zcard' ,'myzset' ) 在 LUA 脚本中

我在从node.js运行的lua脚本中有这段代码。localstats={};stats['orders']=redis.call('zcard','jobs');returncjson.encode(stats)这会返回错误:Error:ERRvalueisnotanintegeroroutofrange但是,当我从CLI运行zcardjobs时,会返回一个整数。 最佳答案 您的Lua脚本运行良好。扔掉分号,它是Lua;)。测试:redis-cli-p14130eval"localstats={}\stats['orders']=

node.js - NodeJS 和 Redis : getting three values simultaneously

目前我这样做是为了使用node-redis在NodeJS和Redis中获取许多值:redis.get('data1',function(err,data1){redis.get('data2',function(err,data2){redis.get('data3',function(err,data3){if(data3==xx&&data2==xx&&data3==xx){console.log('itsok');}});});});问题是三个请求会一个接一个,我想一次做3个,然后像这样调用我的条件(这不起作用,只是为了让你明白我想要什么):redis.get('data1',f

sockets - 为什么函数socket或accept的返回值可以作为redis中数组的下标

我阅读了下面的redis源代码:intaeCreateFileEvent(aeEventLoop*eventLoop,intfd,intmask,aeFileProc*proc,void*clientData){if(fd>=eventLoop->setsize){errno=ERANGE;returnAE_ERR;}aeFileEvent*fe=&eventLoop->events[fd];//...}'fd'参数是函数socket或accept的返回值,用作数组'eventLoop->events'的下标。'eventLoop->setsize'被初始化为10000+1024=11

Redis 排序集 : How to get values in numerical order rather than alphabetical order when two values has the same score?

最近,我正在使用redisSortedSet为每个用户实现游戏排名,但是我遇到了一个问题:zaddgame_rank556435zaddgame_rank556088561zaddgame_rank55608825zrangegame_rank0-1结果是:"60882561""608852""6435"我想知道是否有可能在分数相同的情况下按数字顺序获取值:"6435""608852""60882561" 最佳答案 当一个排序集的成员具有相同的分数时,它们将按字典顺序排序。没有直接的方法让它们以不同的方式排序AFAIK,但您可以轻松

java - 使用 Jmeter Redis 数据集从 Redis 获取值(value)

我尝试使用Jmeter中的Redis数据集插件从Redis获取值。如果Redis键很简单(如示例https://www.youtube.com/watch?v=u0vu3tfrdKc),则可以毫无问题地提取其值。在我的例子中,该值存储在复杂的键中,例如-user.confirmation.6869427a27e784f7e7cbb0746714c27d当我将它用作Redis数据集中“Redis键:”的值时,会弹出以下消息在屏幕上,而脚本未执行且jmeter键值不会返回:2017/02/1112:57:57INFO-jmeter.engine.StandardJMeterEngine:R

memory - 获取内存中的redis key-value大小

我试图在Redis中获取键值对的大小,或者只是一个键,或者只是一个值。使用debugobjectkey命令返回键值的序列化大小(如果要写入磁盘)而不是它在内存中使用的实际字节数。这可以通过检查源代码来确认(基于此Redis:Showdatabasesize/sizeforkeys)https://github.com/antirez/redis/blob/4082c38a60eedd524c78ef48c1b241105f4ddc50/src/debug.c#L337-L343https://github.com/antirez/redis/blob/4082c38a60eedd524