草庐IT

database-concurrency

全部标签

database - 使用 redis 中的 evalsha 调用 lua 存储过程时遇到问题

我正在尝试使用存储在Redis中的lua脚本作为存储过程。我希望能够将这些脚本一次性存入Redis,需要的时候可以查询调用。我已经能够将这些函数添加到:function:键空间,使用redis-cli添加它们,如下所示,redis-cli>SET:function:f1"redis.call('SELECT',0);localdata=redis.call('HGETALL','key:{'..ARGV[1]..'}');print('f1');print(ARGV[1]);returndata;">SET:function:f2"redis.call('SELECT',0);loca

database - 如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?

我的Redis数据存储中有大量的键,所有这些键都具有非常长的随机十六进制文本名称。所有作为哈希的键都有一个名为name的键,它有一个值。当我不知道key在哪里时,如何找到具有特定唯一名称值的散列?(因此我必须搜索我所有的散列-非常糟糕,我知道)-例如,将字段color:blue添加到我具有唯一name:f-377的散列 最佳答案 我建议您创建附加散列,它将包含所有这些唯一值并在长名称上进行映射。又名自己的索引。因此您需要创建新的散列,遍历所有现有的键并添加字段(每个键一个)。将来当您需要创建新键时——您也需要将新字段添加到索引哈希中

database - Redis 存储历史数据

我每天都会生成数据。让我通过一个例子来解释:在世界市场上,黄金价格以秒为单位变化。我想将该价格存储在RedisDBMS中。Gold22JAN11.02PMX-price22JAN11.03PMY-Price...24DEC11.04PMX1-PriceSilver22JAN11.02PMM-Price22JAN11.03PMN-Price我想每天存储这些数据。想要对过去52周的数据应用ML(机器学习)。这可能吗?因为据我所知。redis在KeyValue上工作。如果可能的话。我可以获取特定日期(7月4日)和DateRange(2月1日至3月31日)的数据 最

database - Redis 自定义数据结构

数据字段为typedefstructInfo{std::stringName;std::stringAddress;...Soon};并且想把数据存储在Redis这里。可能有一个例子一些领域的结构可以重复。我如何在Redis中制作上述结构并存储。有一个条件。如果存在相同值的数据。不要覆盖。添加新行。像这样不过是编程语言std::listinfoList_;还可以搜索; 最佳答案 Redis不提供可以存储复杂对象结构列表的数据结构。但你也许可以使用像这样的redis模块:rejson:Redis的原生JSON数据类型:http://r

concurrency - 使用 Celery 同时由两个工作进程运行的独特任务

我正在从事一个项目,该项目的目标是运行一个将任务发送到Celery队列的守护进程,Redis用作代理。每个任务必须一次处理一次(不允许并发)。为了执行此操作,我在我的守护进程中实现了以下代码,它充当Redis的锁:whileTrue:forfooinbar:ifnotself.redis_client.exists(foo.name):# SendthetasktotheCeleryqueuetask=celery_app.send_task('buzz',context={'name':foo.name})redis_client.send(foo.name,task.id)time

database-design - Redis schema设计——传感器数据流的滑动窗口如何存储?

这是我的第一个传感器数据流模式设计,其N-past读数应该可以从Redis客户端查询(何时将数据客户端保存在循环缓冲区中而不是查询?由于某些传感器每周频率为100Hz,其他传感器每周频率为1x,因此客户端不是慢速传感器的选项,使用本地/远程混合设计可能会带来复杂性?基本上可以归结为大量序列化或大量查询,这是我在初稿中注意到的两种模式:它从一个排序集开始,以按时间戳快速筛选,然后该值是一个字符串化对象(例如5x属性id/temp/humid..)或将对象放入由唯一值引用的外部哈希集中以检索哈希集在第二个查询中。左侧选项一中的工作流会生成大的反序列化对象,但会生成一个查询,而后者会生成大量

redis - 广告站点的消息队列、Kafka、事件系统为 "database"?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我正在与一位friend研究使用事件队列/流系统(例如kafka或rabbitmq)作为将广告存储在队列而不是传统数据库中的方法。所需的系统需要提供包含各种字段的事件流,可过滤和搜索。允许流无限期或特定时间(例如让广告过期)保留事件。我们只是不确定是否要采用消息队列/事件流,或者传统数据库是否可行。有没有人有这方面的经验,您会建议调查一个系统而不是另一个系统吗?

concurrency - Redis BITSET 和 WATCH

我正在使用Redis创建一种算法,用于从一个范围内声明未使用的整数。我的解决方案基于我对this得到的答案所以问题。此解决方案使用BITPOS和BITSET,为了避免竞争条件,我还使用了WATCH/MULTI/执行。为了测试并发方面,我创建了一个bash脚本,它同时尝试并行查找一个空闲号码10次,以调查EXEC命令的可能结果。我发现EXEC从未返回null,即使监视的键被另一个客户端修改了。我添加了延迟,以便有足够的时间来触发应该触发监视机制的并发修改,以便EXEC失败,但事实并非如此。所以基本上我有这段代码:while(true){WATCHmykeynumber=BITPOSmyk

database - laravel 5.6 中的 Redis 数据库缓存

我想缓存我的查询结果,我在laravel中阅读了有关Cache::remember的内容,但它需要一个时间参数,我不想为我的redis缓存设置时间。我需要一些东西来缓存我的查询,并且在查询更新后结果因更新而改变。你有什么建议? 最佳答案 在Redis中存储Eloquent模型的完整集合可能比预期的要慢。在我的例子中,我必须创建包含大量where的嵌套选择,count,join,groupby和orderby……等它每次请求都消耗了大量资源,所以我尝试缓存结果。这不是最好的解决方案,因为它比我想要的慢(4倍)(200+毫秒响应)。解决

concurrency - 当我并发运行 zadd 时,如何限制排序集的最大长度?

我想使用redis来存储这样的数据:{id:timestamp(1416991171)}在一个排序集中,它需要有一个最大长度。我只是在插入新的成员/值对之前检查排序集的长度。但我不确定这是否是确保最大长度的好主意,因为我将同时运行它。代码是这样的(在ruby​​中):key="list"max=5if$redis.zcard(key)如何保证最大长度?提前致谢。 最佳答案 注意:您的问题似乎有错字,因为您使用了key两次-一次用于排序集,一次用作标识符。我在回复中将标识符称为keyx。您有两种选择来确保您的SortedSet不会增长