草庐IT

lua-redis

全部标签

ruby-on-rails - 按商店搜索和分组产品 REDIS

我找到了这个question关于Redis中的GroupBy但实际上并没有解决我的问题。我有一个复杂的产品搜索,一旦我找到了我正在寻找的产品,我想按他们的商店对它们进行分组,因为它们必须显示在map中。我的实际实现如下:-一个按模式搜索产品的函数,它返回产品id为“product:id”product_ids=search_products_by_indexing(pattern)-名称为“selling”的散列,其中包含product:id/shop:id作为键/值。shops=$redis.hmget("selling",*product_ids)#thisreturnslisto

python - Redis - 爬虫访问过的站点列表

我目前正在开发一个用Python编码的爬虫,结合Gevent/requests/lxml来爬取一组定义的页面。我使用redis作为数据库来保存列表,例如待处理队列、抓取和已爬网的站点。对于每个url,我都有一个键url_并且我正在使用SETNX命令来确保该URL尚未被抓取,然后将其放入队列中。我开始面临的一个问题是url_键集开始增长得非常快,并且Redis将几乎所有数据保存在内存中,因此它很快就会成为一个问题。抓取的url没有过期时间,因为我只需要访问一次,而且url的内容以后不会改变,所以我还是想保留所有访问过的url。(我正在过滤很多重复的URL)是否可以在Redis中使用一些数

ruby - 来自 Resque Standalone 的远程 Redis 服务器

我想在不同的服务器上运行Resqueworker,从一台Redis服务器获取作业。我知道如何在Rails应用程序中配置它,但问题是我在每个服务器上都使用独立的Resque(https://github.com/dcestari/resque-standalone-sample)。所以我的问题是,如何在不安装Rails应用程序的情况下执行此操作,这可能吗?谢谢! 最佳答案 你需要告诉ResqueRedis在哪里:Resque.configuredo|config|#Settheredisconnection.Takesanyof:#S

php - Redis 中的 CRUD 和关系 : How to

所以Redis(PHP的Predis库)非常有用,因为这个SO答案清楚地显示了许多用例:WhatisRedisandwhatdoIuseitfor?这个答案着眼于处理与Redis的多对多关系:howtohaverelationsmanytomanyinredis问题:Redis中的CRUD和分页。我们如何实现这一目标?我们是否需要将整个表(所有行)预加载到Redis中?环境:LAMP堆栈,OSX 最佳答案 Howdoweachievethis?对于分页,如果您的后端数据结构是:列表使用lrange一组使用sscan哈希使用hscan

memory - Redis+Resque : Which maxmemory-policy for using redis with Resque?

将Resque与Redis结合使用我一直收到Redis的OOM命令在使用内存时不允许>'maxmemory'错误。现在很明显,我似乎应该将redis的内存从当前的500MB增加,但我想确保我也设置了正确的最大内存/数据驱逐策略,以便将redis与resque一起使用。目前它在volatile-lru上。(我一直在寻找这方面的文档,但找不到任何东西。)thisstackoverflowanswer以及来自redis的以下数据..keys=81824,expires=0,avg_ttl=0evicted_keys0expired_keys0...让我相信我配置错误,添加更多内存只会推迟问题

multithreading - 在 Redis 中更新和检索 key

我正在使用Redis键值对来存储数据。针对特定键的数据可以在任何时间点更改,因此在每次检索请求之后,我异步更新针对请求的键存储的数据,以便可以为下一个请求提供更新后的数据。我已经做了很多测试,但我仍然想知道这种方法是否会产生一些负面后果?PS:数据是从多台服务器整合而来的。在此先感谢您的任何帮助/建议。 最佳答案 如果你已经知道要存储的值,你可以使用GETSET(或者transaction如果它不是简单的字符串类型)。如果新值是对值的一些操作,即f(value),您应该在LUA中进行操作脚本。否则其他客户端可能会在您更新之前读取旧值

python - 使用 redis sub\pub 的 Tornado 套接字

我需要有关将网络套接字与Redis发布/订阅channel结合使用的性能方面的建议。我使用tornado作为网络服务器。我有大约100个客户端在监听某个事件的状态。每个客户端都有单独的事件,只需要监听自己的事件。套接字连接是短暂的,大约1-20秒。我看到两个选项:在redis中为每个套接字事件对创建单独的发布/订阅channel。在这种情况下,我会有很多channel。创建一个发布/订阅channel,订阅所有客户端并在Controller中过滤消息以将它们转发到合适的客户端。在这种情况下,我有很多客户收听一个channel。以下哪个选项对性能更好? 最佳答

caching - 如何检查redis缓存表是否为空?

我正在使用redis在MVC应用程序中缓存。我想检查redis缓存为空(无数据)然后触发将填充redis的Web作业缓存来自sql的表数据数据库。如何检查redis缓存中特定表中的空数据? 最佳答案 我不同意@bitoiu。不要将keys命令作为常规操作运行。key不打算以这种方式运行-它应该仅用于调试操作。同样,使用INFO不会告诉您特定数据是否存在,只是告诉您那里有东西。如果您只有一个键,那么可以肯定这似乎有效-直到您发现作业运行出错并存储了空字符串或错误数据。如果您只打算存储一个key,则可能有更好的选择。如果您几乎肯定要从S

node.js - 在 Node.js/Express 中的路由中传递 Redis 键值对

这类似于question,但我的代码有多个路由。下面的代码适用于我想做的事情,但我想知道是否有更简洁的方法来编写它,因为我是Node/Express/Redis的新手。varexpress=require('express');varrouter=express.Router();vario=require('socket.io');varredis=require('./../lib/redis');redis.get('count',function(err,value){if(err)throwerr;/*GETDashboard*/router.get('/',function

redis - sscan 不返回部分成员

我有一个包含整数值的集合。我想用sscan检索它的一部分.127.0.0.1:6379[1]>smembersd1)"1"2)"2"3)"3"4)"4"5)"5"6)"6"7)"7"8)"8"...但是sscan返回完整的成员列表:127.0.0.1:6379[1]>sscand01)"0"2)1)"1"2)"2"3)"3"4)"4"5)"5"6)"6"7)"7"8)"8"9)"9"....有什么方法可以让我一页一页地显示成员(member)(例如,每次扫描10个项目) 最佳答案 使用COUNT指令,如SCAN中所述的文档以返回固定