草庐IT

lua-redis

全部标签

java - redis pub sub 和/或列表来实现数据收集器

我正在开发一个需要按计划从第三方系统收集数据的模块,比如每5分钟一次。启动数据收集的触发器来自Multi-TenancyUI。因此,10个租户可以告诉该模块同时开始收集数据。我从使用一个简单的redis队列开始,所有来自UI的启动请求都被发送到队列中,该模块充当工作人员,获取作业并运行它们。问题是我们需要在1分钟内完成一个数据收集周期,如果有100个作业,如果我们连续进行,我们将花费一分钟多的时间。数据收集需要按计划进行。所以UI说每5分钟运行一次数据收集,直到我说停止!因此,我们添加了另一个可以开始减轻负载的工作器。我的问题是:如何在不在其中一个工作人员中保持状态(预定线程执行程序)

scala - 由于 redis 是单线程的,如何将这些调用包装在 Future 中?

由于redis是单线程的,像下面这样的调用将阻塞直到它返回:redis.hgetall("some_key")现在假设我要将我所有的调用包装在Futures中,例如,如果我必须同时进行100K次这些类型的调用:Future.sequence(redis_calls)这样做对性能有帮助吗?还是故障跟踪,或者如果调用被备份,它是否会导致问题? 最佳答案 您会发现最慢的部分是向Redis获取命令并再次读取结果,而不是等待Redis执行请求。为避免这种情况,您可以使用pipelines一次发送一堆命令并一起接收结果。

php - 如何在 Memcache 或 Redis 中通过标签清除缓存?

今天我在开发项目时遇到了问题。例如,我通过缓存键=post_list_OFFSET_LIMIT将一些数据(如博客文章)放入内存缓存中,其中通过分页偏移和限制它是动态数据。但是当我添加新帖子时,我无法通过前缀post_list_清除缓存。新帖子将在缓存过期后显示。Memcache没有标记功能。可以通过自定义代码添加标记支持。redis有这个功能吗?按前缀标记或删除标签?谢谢。 最佳答案 在redis中可以通过3种方式解决:使用扫描命令:http://redis.io/commands/scan获取与您的模式匹配的键并删除它们。Howt

Azure Redis 缓存 : "role discovery data is unavailable"

我正在尝试连接到AzureRedisCache的一个实例从我本地的开发机器。我正在使用StackExchange.Redis像这样:varlazyConnection=newLazy(()=>{returnConnectionMultiplexer.Connect($"{redisServerUrl},abortConnect=false,ssl=true,password={redisServerKey},connectTimeout=10000,syncTimeout=10000");});当lazyConnection被调用时,我得到一个InvalidOperationExcep

redis - Redis 命令 ZRANGEBYLEX 返回元素的顺序是什么

Redis命令ZRANGEBYLEX返回元素的顺序是什么?还是没有定义? 最佳答案 顾名思义,它是按字典顺序排列的。例子:127.0.0.1:6379>zaddtest0a1b2c3d4e(integer)5127.0.0.1:6379>ZRANGEBYLEXtest-[z1)"a"2)"b"3)"c"4)"d"5)"e"127.0.0.1:6379>ZRANGEBYLEXtest[b[z1)"b"2)"c"3)"d"4)"e"127.0.0.1:6379>zaddtest0aaaa(integer)1127.0.0.1:6379>

python - Heroku 上的 Redis 管理

我已经在Heroku中配置了RedisToGo插件以与RedisQueuepythonlibrary一起使用.我的应用程序与队列的redis数据库有一些问题(即最大内存问题)。即使所有工作都已完成,内存使用率仍然很高。所以我一直在阅读Redis和Redis队列,并通读Heroku'sRedisdocumentation.我想使用命令行界面,所以我尝试安装:herokuplugins:installheroku-redis▸Notinstallingheroku-redisbecauseitisalreadyinstalledasacoreplugin.好的,所以要安装的redis安装了

Python redis rpop 是 resultng b'value' 列表结构

我正在使用dockercompose开发一个简单的redis和flask项目。我的flask使用lpush、rpop操作redis列表结构。在我使用像brpop这样的命令之前,它工作得很好,现在我的所有结果都变成了b'value'。我尝试只使用第一个命令,但不知何故b'value'输出不断出现。知道是什么原因造成的吗?**redis.lpush('moviestore','likemov')itle=redis.rpop('moviestore')** 最佳答案 redis字符串似乎是Python字节字符串(参见有关DataType

java - Redis在Java中的实现

我正在尝试用java实现一个基本的redis服务器。但是我不确定我必须使用什么数据结构来实现它的数据库。一开始我觉得很简单HashMap足够了,因为它可以存储值,我可以实现GET和SET命令。但是当我深入研究时,我可以找到像GETBIT这样的命令。,SETBIT,ZADD等等,需要更复杂的数据库数据结构。IthinkIshoulduseaHashMapwithvaluecolumnoftypeConcurrentSkipListMap.AmIright?Pleasehelp.另外,我是否应该在将Set命令的字符串值转换为二进制值后存储它? 最佳答案

python - Django 如何在 Windows 10 中使用 redis?

我正在使用Django框架和Windows10开发小型系统。我将使用Redis在内存上进行缓存。好吧,我发现Redis并不正式支持Windows操作系统,但MsOpenTech提供了一个适用于Windows64位的软件包。我用巧克力包管理器安装了它。https://chocolatey.org/packages/redis-64然后我在cmd中通过pipinstall安装了django-redis包。嗯,它同时自动安装了redis模块。我认为删除redis模块会很好,因为我已经安装了redis3.0.50364位(用于Win)。但它发生错误“没有名为'redis'的模块”。我检查了dj

redis - 使用正确的 Redis 数据类型进行基于时间的比较

在我正在编写的应用程序中,用户可以执行各种社交操作。我将这些操作的结果保存在Redis哈希中。每个散列的命名方案采用串联的user_ids和相应的action_ids。例如。hash:11:99可以是user_id11和action_id99的哈希存储结果。在这种方案下,检索执行的任何操作的结果任何用户都是O(1)进程(如果user_id和action_id已知)。但接下来,我还需要查找用户在过去30分钟内执行的所有操作的所有结果(精确的action_ids未知)。为此,我将action_id和时间戳一起存储在为每个用户指定的排序集中。例如。sorted_set:1可以包含action