草庐IT

Redis:查找与某些模式匹配的键

我想从redis中获取列表中元素数量的所有键(每个值都是一个列表类型)有超过x个项目?我怎么做?任何简单的方法还是只需要使用lua?如果lua-怎么样? 最佳答案 实现这一目标的方法有很多种,每种方法各有利弊。您必须做出的第一个决定是,您是希望预先准备好查询的答案,还是临时计算出答案。对于预先准备的,您必须按长度维护列表的索引。对于临时情况,您必须扫描所有列表并在运行时获取它们的长度。假设您正在尝试实现一个临时查询,如果您已经知道如何实现,那么服务器端Lua脚本是一个不错的选择。如果没有,您可以学习它(https://redis.i

redis - 如何在 REDIS 中标记一个键,以便以后我可以删除所有与该标签匹配的键?

今天我们这样保存数据:redisClient->set($uniquePageID,$data);然后像这样输出数据:redisClient->get($uniquePageID)但是现在我们需要删除基于用户ID的数据库。所以我们需要这样的东西:redisClient->set($uniquePageID,$data)->tag($userID);所以我们可以去掉所有只和这个userID相关的key,例如:redisClient->tagDel($userID);REDIS能解决这样的问题吗?谢谢 最佳答案 没有内置的方法可以做到这

ruby - Redis:从队列中获取所有值等于某些条件的键

我在redis上存储了一堆作业,每个作业都由一个特殊的键标识,哈希值作为包含一些信息的值。这些作业被拾取、计算,一旦完成,它们就会有一个success字段,如果计算成功完成,该字段将设置为true。我想填充所有键的列表,这些键的值哈希中的success键设置为true。例如redis存储:foo_key_1=>{bar_hash_key:bar_value,baz_hash_key:baz_value,success:true}foo_key_2=>{bar_hash_key:bar_value,baz_hash_key:baz_value,success:false}在上面的示例中,

redis - 我的 redis 数据模型的键或列表?

我正在构建我的应用程序的数据模型,基本上,对于给定的用户,我想保留他/她的friend列表以及他们每个人的状态(如果他们接受成为friend的请求或者如果他们还没有)我最终得到了几个key:(一个给tom的每个friend)friends:tom:status:jessica=>joinedfriends:tom:status:stephan=>joinedfriends:tom:status:hubert=>pendingfriends:tom:status:peter=>declined这是处理该问题的最佳方式还是应该以其他方式使用列表? 最佳答案

java - 您可以使 Redis 中的 hashKey 的键值对过期吗

我想使在redis中的hashKey中设置的特定键/值对过期。但是redis使整个hashKey过期,其中所有keyValue对都丢失了。例如,我只想从seqNu中删除Key:666。使用jedis.setex是另一种选择,但你不能在其中设置hashKey。jedis.hset("seqNu","666",System.currentTimeMillis()+"");jedis.hset("seqNu","777",System.currentTimeMillis()+"");jedis.expire("seqNu",20);//ThisexpiresthewholeHashKey:s

data-structures - 在redis中驱逐 HashMap 中的键

我在Redis中有一个不断增长的巨大hashmap。每天大约50k,在接下来的几天里,这个数字会越来越少,因为相同的键会重复。我想将这个hashmap限制为100万个键值对。我想基于LRU来做这个。我知道我可以使用Redis的排序集以时间戳作为值并删除不在范围内的条目来执行此操作,但我需要保留键值对结构,当我移动到排序集时我将丢失键值结构,因为值将是时间戳,我需要在键中执行一些字符串操作以实现等效的哈希功能(不可行)。所以我的要求是:键值对结构根据给定键获取值或多个键用100万对修剪结构lru政策。我可以用hash实现吗?我也愿意接受其他建议吗?提前致谢 最

redis - 排序集不根据 Redis 中的键更新值

我不熟悉Redis(3.0.2)中的排序集。我基本上想根据唯一键更新我在排序的Redis集中的值。截至目前,“zadd”每次都会向特定键添加新值。截至目前:127.0.0.1:6379>zaddxyz1"abc"(integer)1127.0.0.1:6379>zaddxyz1"newabc"(integer)1127.0.0.1:6379>zrangexyz0-11)"abc"2)"newabc"要求的输出:(它应该将xyz键的值从“abc”重写为“newabc”127.0.0.1:6379>zaddxyz1"abc"(integer)1127.0.0.1:6379>zaddxyz1

mongodb - 如何更新 mongodb 结构中的键值对

我有一个mongodb集合,其中对象的结构如下:{"id":"1234","history":[{"userid":100,"myobjects":[{id,id1,id4}]},{"userid":200,"myobjects":[{id2,id3,id5}]},}我正在尝试使用以下javascript向用户数组添加一个条目:Collection.update({"_id":1234},{$push:{"history.userid":300,"history.$.myobjects":object_var}});我收到“无法设置名为$的字段”错误。我有什么想法可以推送到这个子对象吗

mysql - 在 MySQL 中选择表的键列表

假设我有一个表“products”,我想检查这个表是否有任何索引、外键等“描述产品”会提供一些信息。FieldTypeNullKeyDefaultExtraproductCodevarchar(200)NOMULNULLdescriptionvarchar(500)NONULL主要是案例中的关键字段。但是绝对没有引用,什么表链接到谁等等。通过SQL获取有关表的此类信息的最佳方法是什么?谢谢 最佳答案 你可以使用SHOWCREATETABLEproducts它为您提供创建表的查询。信息量最大。

mysql - sql 中的键仍会保留 View 中的键吗

假设我有一个名为FISH的mysql表,其中包含字段A、B和C。我运行SELECT*FROMFISH。这让我对所有领域都有一个看法。那么,如果A是原始表中的键,它是否也是View中的键?意思是,如果我有一张表FISH2,我运行了SELECT*FROM(SELECT*FROMFISH)D,(SELECT*FROMFISH2)EWHERED.A=E.A相关字段还会是键吗?现在,让我们更进一步。如果我跑SELECT*FROM(SELECTCONCAT(A,B)ASDUCK,CFROMFISH)D,(SELECTCONCAT(A,B)ASDUCK2,CFROMFISH2)EWHERED.DUC