我有一个Redis数据库,里面有数百万个键。随着时间的推移,我写入和读取的key发生了变化,因此有许多key我不再使用了。大多数也没有任何类型的TTL。我想了解Redis数据库中有多少百分比的键不再使用。我在想我可以使用hyperloglog来估计正在写入的键数的基数,但是为每个被写入和读取的键做一个PFADD似乎需要很多工作从。明确地说,我还不想删除任何东西,我只是想对数据库中使用的键数做一些分析。 最佳答案 我将从scan命令开始遍历键,然后在每个键上使用objectidletime命令来收集自上次使用键以来的秒数用过的。从那里
我有两个不同的key(KeyA和KeyB),它们包含一个数字列表。我想将KeyA中的列表与KeyB进行匹配,并从KeyA中的列表中获取不同的数字。可能吗?提前致谢。 最佳答案 没有与Redis列表相交的native命令。您可以在服务器端Lua脚本中执行此操作,但性能会如此,因为列表不会为除其末端之外的任何内容提供恒定的查找时间。更好的方法是为每个列表保留一个集合,并将列表的元素添加到集合中。然后你可以在Set上使用所有Set操作,特别是SINTER在你的情况下。 关于Redis-如何区分
我有一个项目,我想将Redis用作内存数据库,将数据库缓存到磁盘。从我收集到的所有信息来看,Redis似乎是满足我需求的绝佳选择。一个问题是,似乎在使用Redis之前,您必须先将其安装到您的机器上。Redis是否可以作为库添加到.Net解决方案并编译为我的单个安装包的一部分,而不是作为必须安装在用户计算机上的单独应用程序/服务?基本上,我想像使用类似于SqlLite/SqlServerCE的本地化数据库一样使用它,但具有Redis的所有功能。这能做到吗?我怀疑答案是否定的,但如果不是,我如何从我的项目中创建一个本地数据库并从我的应用程序中打开/关闭它?我找不到关于这是否可能的直接答案,
我正在为多个数据库制作图形客户端,并希望添加对Redis的支持。我是Redis的新手,因此有一个非常新手的问题:有没有办法浏览Redis元数据(就像MSSQL中的sysobjects)。 最佳答案 Redis是一个键值存储,因此使用一些命令代替元数据模式,例如SCAN、KEYS、HSCAN...为了获取数据库中的所有键,每个命令都针对不同的数据类型(STRING、HASH、LIST、SET),然后可以根据类型创建数据的图形表示。 关于redis-查询Redis元数据表,我们在StackO
假设有N个生产者和订阅这N个生产者的M个用户。这里N生产者生产N种不同类型的消息,例如producer1producesmessageType1,producer2producesmessageType2,producer3producesmessageType3,...producerNproducesmessageTypeN.M个用户可以订阅这些消息。一个用户可以订阅多种类型的消息。例如user1consumes(messageType1,messageType2,messageType10)user2consumes(messageType14,messageType5)..us
我在我的Rails应用程序中进行了两次ajax调用,第一个ajax调用在Redis上保存了一个键值对,并查看该值是否正确保存。但是我进行的下一个ajax调用并尝试检索key时我没有获得所需的值。我正在设置这样的值$redis.setnx("#{id}_number,"10")并尝试获取类似的值$redis.get("#{id}_number")isreturningnil不确定我做错了什么,我们将不胜感激。谢谢。 最佳答案 你少了一个引号,正确的语法是$redis.setnx("#{id}_number","10")
我不习惯使用键值存储。我正在创建网页游戏。我的目标是将在线用户相互匹配。一旦用户在线并决定玩游戏,他们将被临时添加到REDIS数据存储中(直到他们注销)。我将使用他们的ID作为键和他们的详细信息(NAME、GAMETOPLAY、RANKING、STATUS等)添加到散列或集合中。不确定哪种数据类型更好。如何将用户(即REDIS记录)匹配在一起?基本上,我将在REDIS数据存储区中有待处理的用户,我想遍历每条记录,直到找到匹配项。但是显然你不能在REDIS中搜索,那么我该如何实现呢?我不想从Redis中提取每条记录只是为了检查它的详细信息。这似乎是非常昂贵的资源明智。一定会有更好的办法。
我想了解我应该如何使用Redis列表以及如何制作确定它是可靠的。假设我有一个包含100个用户的用户列表:第1天:RPUSHusersid_1RPUSHusersid_2RPUSHusersid_3......RPUSHusersid_100第2天:Redis粉碎第3天:我恢复了redis(使用快照),但是快照是在最后5个用户添加到列表之前的10分钟,因此表格如下所示:RPUSHusersid_1RPUSHusersid_2RPUSHusersid_3......RPUSHusersid_95我现在该怎么办?我将如何获得其余5个用户?使用快照恢复时我怎么知道我丢失了数据?
我有以下看起来像这样的数据:{location:'zimbabwe',phone_num:123-123-1234,ext:2222}或{location:'puertorico',phone_num:222-222-2222,ext:8888}我的最终用户需要能够查询RESTAPI并发送如下内容:http://myapp/internalext/123-123-1234应该返回一个内部扩展值2222。但我还需要能够支持这样的查询:http://myapp/phonenumber/2222@abc.com这应该返回值123-123-1234为了能够支持这样的查询,我想知道在Redis中
例如,我有一个数组/json,其中包含100000个条目缓存在Redis/Predis中。是否可以更新或删除1个或多个条目,或者我是否必须生成100000个条目的整个数组/json?我怎样才能做到这一点? 最佳答案 它是关于你如何存储它们的,如果你将它存储为一个字符串那么不,setkeyvaluegetkey->willreturnyouvalue此处的值是包含10000个条目的json/数组。相反,如果您将其存储在哈希中。http://redis.io/commands#hashhmsetkeymember1value1membe