草庐IT

java - 如何获取redis中特定hash下的所有key和value?

我尝试使用以下java代码读取特定redis哈希键中的所有键和值,importredis.clients.jedis.Jedis;publicclassRedisDBExport{publicstaticvoidmain(String[]args)throwsException{Jedisjedis=newJedis("hostname",portno);jedis.auth("password");System.out.println("ConnectedtoRedis");System.out.println("ConnectedtoRedis:"+jedis.hgetAll("b

hash - 为什么redis dict中的load factor设置为1

众所周知,在哈希表中,负载因子对于控制冲突很重要。InJava/HashMap,thedefaultloadfactoris0.75,AndinCPython/dict,theloadfactorissetto2/3但是,在redis/dict中,是1.0(启用dict_can_resize时),为什么?/*Ifwereachedthe1:1ratio,andweareallowedtoresizethehash*table(globalsetting)orweshouldavoiditbuttheratiobetween*elements/bucketsisoverthe"safe"

hash - 如何在redis中 "EXPIRE" "HSET"子键?

我需要使redis散列中超过1个月的所有键过期。 最佳答案 Thisisnotpossible,为了keepingRedissimple.QuothAntirez,Redis的创造者:Hi,itisnotpossible,eitheruseadifferenttop-levelkeyforthatspecificfield,orstorealongwiththefiledanotherfieldwithanexpiretime,fetchboth,andlettheapplicationunderstandifitisstillva

hash - 在 LRU 上删除 Redis Hash Key 的字段

我如何在Redis上设置LRU,它不是在实例级别而是在某些特定级别。让我们说一个哈希。我使用散列键作为一个缓存桶,字段作为键,值是值。所以它就像:Redis;skey-field-value=type-key-field对我来说。如果它不是直截了当的,那么我想使用另一个数据库级LRU。(一个Redis实例有16个DB,我想将DB1用作LRU这意味着进入DB1的所有内容都将遵循LRU,而进入DB-2,3...的所有内容将不遵循LRU)。 最佳答案 我用Hash+SortedSet实现了它。在我的例子中相当于Redis规范是:散列key

hash - Redis 按字段和值进行哈希搜索

这是我的用例:我有一个简单的客户端/服务器应用程序,其中的通信通过socket.io进行。由于我需要跟踪房间名称及其对应的套接字所有者,因此我决定创建简单的Redishash,其中,每一对都是.这个散列允许我通过房间名称快速找到特定房间所有者的socketId。到目前为止,一切都很好。上面的哈希在subscribe后端事件上更新,使用非常简单的haset通过node_redis调用redis.client.hset(keyRoomToSocketId,room,socketId,cb);这确保每次新套接字到达并创建其自己的具有唯一名称的房间时,将其socketId及其相应字段-room

java - Redis - key HASH 和 SET 以及 ZSET 如何与 CrudRepository 保存相关?

我是Redis新手,使用SpringBoot+SpringDataRedis示例开发代码。当我保存记录时,我看到KEYS被创建并且这些键中4是HASH,1ZSET和所有其他都是SET。我没有在Spring文档中看到每个KEY的含义正在被保存。.127.0.0.1:6379>KEYS*1)"persons:c5cfd49d-6688-4b83-a9b7-be55dd1c36ad"2)"persons:firstname:bran"3)"persons:39e14dae-fa23-4935-948f-1922d668d1c2"4)"persons:f0b6dd26-8922-4a36-bd

java - redis hash中如何通过fuzzy key查询数据

我使用Redis哈希来存储我的数据。key是一个固定的值,field存储“id”+“type”,value存储对应的数据。无论如何通过模糊键查询数据?例如记录是"ABC":"12301":"abc"和"ABC":"12302":"def",我想用"ABC"+"123*"查询出这两条记录。提前致谢! 最佳答案 是也不是。您可以使用HSCAN具有类似glob的模式,这似乎是您所需要的。也就是说,扫描大哈希值可能很耗时。相反,您可以构建自己的索引(参见例如LexicographicalIndexes或使用搜索引擎,例如RediSearch

hash - Redis - hmset() in hash - 效率

假设有一个具有10个键值的Redis哈希。我将它们全部读入perl哈希(或任何语言map/hash/dict)并需要更新其中的3个值。现在我更改了哈希中的3个值,需要将其写回redis。(A)&(B)哪个更快?(A)$redis_handle->hmset($redis_hash_name,\%perl_hash);或(B)while(($k,$val)=each%three_changed_items_in_perl_hash){$redis_handle->hset($redis_hash_name,$k,$val);}我想考虑的是:(A)是与10个元素的redis的一次通信。但是

node.js - Redis hash值不能按时间顺序显示

我有一个使用socket.io、node.js和redis的实时聊天应用程序。我需要添加删除功能,以便用户可以根据需要删除他们的评论。为了使这项工作正常进行,我需要为每条评论分配一个唯一的ID,这样只有选定的评论才会被删除。我不能使用redis的list因为没有唯一id的空间。List只能取key和value。就是这样。所以,我发现hash包含key、field(uniqueid)和value。起初,这在我的聊天应用程序上看起来效果很好,我能够使用hvals显示评论,但很快我意识到这些评论是按随机顺序显示的。当我使用list时,这个顺序问题不存在。我研究过是否可以使用hash按时间顺序

Redis 集群 : Is it possible to obtain one hash slot from different keys?

我从Redis集群教程中了解到,集群只有16384个槽(0-16383)。哈希槽是通过以下命令计算的:CRC16(KEY)mod16384。因此,例如某些key的CRC16等于16385,哈希槽将为1。对于另一个key,CRC16等于32769,哈希槽将再次为1。它会引起一些冲突吗?还是第一个会被第二个重写? 最佳答案 如果我理解你的问题,不,这不是冲突。每个key属于一个hashsolt,但每个hashslot可以有多个key。CLUSTERGETKEYSINSLOT槽数:https://redis.io/commands/clu