草庐IT

redis - 在 Redis 中同步 2 个排序集的策略?

我有2个排序集:mainSet:其中包含的列表userSet:其中包含从mainSet中过滤的一些项目基于一定的规则。(系统中的每个用户都会有一个以userId为key的userSet)如果mainSet中有一些变化并且很可能会重新排序项目顺序(例如更新分数,添加新项目),然后我想更新userSet相应地。例如,mainSetmainSetmainSetmainSetuserSetuserSetmainSet中的项目将在userSet中添加/更新基于一些过滤规则目前,要确保userSet中的项目与mainSet保持同步(比如item的分数变了),我要遍历mainSet中的所有item,

redis - 获取具有给定前缀的所有排序集的大小

我在Redis中得到了几个具有共同前缀(itemmovements:)的排序集合。我知道我们可以使用ZCOUNT像这样获取单个(排序集)键的项目数:127.0.0.1:6379>zcountitemmovements:801000000000(integer)23(我能够做到这一点,因为我知道项目分数的范围。)如何为所有前缀为itemmovements:的键循环运行它?从HowtoatomicallydeletekeysmatchingapatternusingRedis得到提示我试过这个:127.0.0.1:6379>EVAL"returnredis.call('zcount',un

lua - Redis 获取排序集的键,其中至少一个成员的分数小于 N

我的redis中有多个排序集。它们的键具有以下模式:user:{userId}:data其中userId是实际值。相应集合的每个成员的分数等于添加时的时间戳。现在,我试图弄清楚如何为那些在特定时间戳之前添加了至少一个成员的排序集检索Redis键(这意味着至少一个成员的分数低于以毫秒为单位的给定时间戳)。我可以通过模式检索所有的键:KEYS'user:*:data'实际上,我可以使用命令检查一个键的所需条件:ZRANGEBYSCOREuser:{userId}:data-inf{timestamp}然后检查返回数据的大小但我是否有任何方法(单行、管道命令或使用Lua脚本)仅获取排序集中至

redis - 如何保留前 10 个成员并删除 Redis 排序集的其余部分?

我想在Redis排序集中保留我最近10次查询的结果。我使用时间戳作为分数。我需要按分数保留前10名成员并删除其余成员。我基本上需要ZREMRANGEBYREVSCORE或ZREMRANGEBYREVRANK但这些命令不存在。有解决办法吗? 最佳答案 redis命令ZPOPMIN从排序集中弹出最小值或指定数量的最小值。但是,它仅从不稳定的5.0.0版本开始支持。 关于redis-如何保留前10个成员并删除Redis排序集的其余部分?,我们在StackOverflow上找到一个类似的问题:

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

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

Redis - 存储频繁项集的数据结构

我有一个针对大型文本语料库执行关联规则挖掘的应用程序。生成的项集具有以下结构:Item1,Item2,Item3,Item4,Frequency在这种情况下,所有项目都是单词(字符串元素),而频率是一个整数值。到目前为止,我们已经使用MySql来存储项目集。然而,数据库变得非常大,有人建议我使用NoSql数据库并专注于Redis,因为它对各种数据类型有很好的支持(请注意,我对Redis或任何其他NoSql数据库没有太多经验)。我的问题是:用来存储这些项集的最合适的数据结构是什么?我如何查询我的数据库以检索以特定单词开头的项集?编辑:示例数据是(用|分隔的项目,最后一项是频率):In-t

redis - Redis 的 "Score"和 "Ranking"功能集的用例

Redis的“分数”和“排名”功能集有哪些用例(除了游戏的典型“排行榜”示例?我正在尝试弄清楚如何利用这些动态新功能作为我预计将从使用传统的关系数据库转向使用Redis作为持久性数据存储。 最佳答案 ZSET非常适合基于分数的选择或范围,但分数可以是任何数值,例如时间戳。我们将所有美国股票的每日股价存储在redis中。这是ebay的示例...ZADDkeyscoremember[scoremember...]...ZADDstocks:ebay130.39232.70331.25431.75529.12629.87729.93这种情

mysql - 合并依赖于另一个结果集的查询

我运行此查询以根据评级、类别等从我的wordpress数据库中获取20个随机项目SELECT(A.user_votes/A.user_voters)assite_rating,B.IDaspost_id,B.post_author,B.post_date,E.nameascategoryFROM`wp_gdsr_data_article`asAINNERJOIN`wp_posts`asBON(A.post_id=B.id)INNERJOINwp_term_relationshipsCON(B.ID=C.object_id)INNERJOINwp_term_taxonomyDON(C.t

mysql - 使用给定字符串值集的随机值更新表

我想用给定集合中的随机值更新我的表,而不是来自另一个表。例如值1、值2、值3MySQL查询应该根据以上值更新所有记录。我正在寻找类似类型的解决方案,但使用给定集合中的随机字符串值:Updatecolumnwithrandomvalue 最佳答案 我会使用elt()函数:updatetablenamesetcolumnname=elt(floor(rand()*3)+1,'value1','value2','value3');elt()从列表中选择特定元素。rand()产生一个随机值。 关

php - 我对任意深度层次数据集的嵌套集的替代方法 : Good or Bad?

在重新创建我的CMS时,我想要一种替代传统父/子方法的方法来管理站点地图/页面层次结构。我记得不久前看到过嵌套集合模型,但不记得它叫什么了。因此,我偶然发现了一种类似的方法,我想评估和比较属性,确保以后不会遇到愚蠢的限制,因为我没有采用已耗时考验的方法。因此,如果A)它已经被发明出来(它叫什么?!),B)属性中存在根本性缺陷,或者C)这是一个好方法(请给出充分的理由!),请告知。考虑这个列表:主页关于我们联系我们产品服装书籍电子知识库其他内容在嵌套集合模型下,我相信您使用深度优先遍历存储每个节点的左/右描述符:Home1-18AboutUs2-3ContactUs4-5Products