草庐IT

redis - 仅当 SCARD 低于某个值时才 SADD

Node.js和Redis:我有一个LIST(users:waiting)存储等待加入游戏的用户队列。我有SORTEDSET(games:waiting)等待用户的游戏。服务器每30秒更新一次新日期。这样我就可以确保如果服务器崩溃,游戏就无法再使用。如果服务器正在运行并已满,它将自己从排序集中删除。每个游戏都有一个SET(game:id:users),其中包含其中的用户。每场比赛最多接受6名玩家。多个服务器正在使用BRPOP从LIST中获取用户(用户:正在等待)。一旦服务器拥有用户ID,它就会获取等待的游戏ID,然后继续在其游戏:ID:用户SET上运行SCARD。如果此结果小于6,则将

redis - SADD 和 PFADD 有什么区别?

我希望有一个集合来存储元素,之后我可以获得基数。我注意到我可以使用命令SADD或PFADD,然后使用SCARD或PFCOUNT。这两者有什么区别?优点/缺点是什么? 最佳答案 使用SADD时,您将数据存储在SET中.使用PFADD时,您将数据存储在Hyperloglog中,这是一种不同的数据结构。当您必须再次访问这些值时,SET用于存储唯一值。HyperLogLog允许获得使用PFADD添加的数据中唯一值数量的近似计数。当您有大量不同的值并且不需要取回它们时,它很有用。例如,它可用于获取高流量网站上给定页面在给定日期的唯一访问者数量

database - Redis中SADD的使用方法

我找到了这个很好的例子,我正在尝试在哈希之间建立关系,然后获取一些数据。#Herearemycategories>hmsetcategory:1namecinema...morefields...>hmsetcategory:2namemusic...morefields...>hmsetcategory:3namesports...morefields...>hmsetcategory:4namenature...morefields...#Herearemyusers>hmsetuser:1nameJack...morefields...>hmsetuser:2nameJohn..

list - redis:原子 LPOP 和 SADD 可能吗?

有没有办法自动从列表中弹出一个项目并将其添加到集合中?我的案例场景是我有一个独特项目的“工作队列”列表,我想跟踪“进行中”集中正在处理的内容。如果我的工作进程在处理某个项目时崩溃,这也将允许“进行中”集中的项目重新排队。我希望它是原子的,这样从列表中弹出的任何内容都将始终在集合中。我只是不知道如何使用MULTI/EXEC执行此操作,即:redis>MULTIOKredis>LPOPworkqueue"foobar"redis>SADDinprog"foobar"redis>EXEC 最佳答案 为什么你希望你的“进行中”收藏是一个集合
12