草庐IT

mysql - 获取与 Redis 中给定模式匹配的哈希的键数 (hlen) 的最大值

我有很多以如下所示模式开头的记录:user:8d6120be2e7247e49545502092c389fd和用户:000935dc3bb16bd2e0de50988751acfd虽然散列代表用户对象,但一个散列可能比另一个有更多的键。假设用户是经理,那么他可能有很少的其他键,如Reportees、Benifits等,在不实际查看所有记录的情况下,有没有办法知道任何哈希中键的最大数量?我正在将Redis结构转换为关系模式,这让我了解了所有列应该显示的内容。 最佳答案 只需使用HLEN如果你的user:键是HSET。Redis中的大多

php - 检索 redis 哈希数据

我的开发环境是使用predis客户端库的LaravelPHP框架。我可能忽略了某些方面,我是Redis的新手,但我认为我想要的是用于存储用户信息的哈希数据类型,如下所示:$redis->hmset('users',array('id':1,'username'=>'ali','dob'=>'29/06/89','email'=>'a@a.com'));但是,我的问题是,以上是我将所有用户的信息存储在一个散列中的正确方法,这样我就可以一起检索所有用户,并在必要时通过ID检索单个用户,因为我需要显示前端表中的所有用户,但有时也需要通过ID获取单个用户。如果没有,我需要将每个用户存储在一个单

c# - 用于在 Redis 中按字典顺序检索键值的高效数据类型?

我正在使用ServiceStack.Redis构建标记系统在c#.我想按字典顺序检索key的values,它应该非常快。values是string类型,平均长度为10个字符。我的印象是redis中的sortedset根据字典顺序存储values但它使用score(时间戳),但我错了。我应该选择哪种数据类型?此外,数据类型应支持Sets中的SINTER之类的交集。 最佳答案 您是对的-SortedSets正是您所需要的。要让SortedSet中的成员按字典顺序排序,只需将所有分数设置为0。然后您可以使用ZRANGEBYLEX以及集合操

node.js - Redis 在哈希列表中按喜欢排序?

抱歉,如果我的术语有误,但我有一个feed哈希列表。即feed:1,feed:2,feed:3在这些散列中我有一些键和值。即在feed:1中我有likes:300。我有一个名为feeds:fid的列表,其中列出了所有的提要ID。因此,如果我想获取所有提要,我可以在我的node.js中执行这样的方法module.getObjects=function(keys,callback){helpers.multiKeys(redisClient,'hgetall',keys,callback);};我不确定如何对它们进行排序,以便按最喜欢的方式对所有Feed项目进行排序?理想情况下,我只想获得

redis - Redis 中有类似MGET 的HASH 数据结构的命令吗?

我需要一次调用一组已知的REDIS哈希键的所有数据字段。我将MGET用于字符串键,例如:MGET键[键...]从1.0.0开始可用。时间复杂度:O(N),其中N是要检索的键的数量。返回所有指定键的值。对于每个不包含字符串值或不存在的键,返回特殊值nil。因此,操作永远不会失败。HMGET只为一个键带来所有字段。我需要很多键,所有字段都需要按键。 最佳答案 没有这样的命令,redis哈希在哈希中工作,因此HMGET在一个哈希中工作并给出该哈希中的所有字段。无法一次访问多个哈希中的所有字段。但是您可以在每个哈希上使用多个HMGET并获取

sorting - 使用集合中的哈希对redis中的集合进行排序

我们以这种方式使用REPLredis-cli在redis中创建了3个哈希:hmsetredishop:items:Articulo1artist"MartinWessely"price12.99name"HandcraftedTreesMug"hmsetredishop:items:Articulo2artist"MartinWessely"price13.99name"HandcraftedTreesMug"hmsetredishop:items:Articulo3artist"MartinWessely"price14.99name"HandcraftedTreesMug"我检查了

hash - Redis - 非常大的单条记录(哈希表)

我们在这里有一个巨大的争议:我们在服务器上安装了Redis,我们想在其中保存几种类型的数据:一些零星变量(针对每个用户-所以不仅仅是几条记录)一个非常大的表会随着时间增长争论的焦点是如何保存提到的表格我们都知道Redis的GET时间复杂度是O(1)-所以我们可以将表的每条记录存储为Redis中的一条记录(通过一些前缀来知道它是该表行)或我们可以将表作为单个记录存储在Redis中作为哈希-然后在哈希中访问我们想要的行-这是两个O(1)的步骤。我认为Redis中不断增长的巨大SINGLE记录是灾难性的,但我需要的不仅仅是我对此的看法-我需要Redis专家的回应,指出该方法的错误或证明我错了

redis - 如何正确计算 hash-max-ziplist-value?

我的问题示例:HMSETmyhashfield1value1field2value2而myhash只有这两个字段。主要问题是如何计算hash-max-ziplist-value,以便我的哈希值不会超过以压缩格式维护我的哈希值,从而最大限度地减少内存使用量。非常感谢“KevinChristopherHenry”的详细解释、帮助和时间。由于我的英语有限,我将在这里总结凯文的回答。如果我的理解有误,请指正。(1)为了满足hash-max-ziplist-value,我需要计算max(field1,value1,字段2,value2)。假设value1的大小最大。然后我只需要确保value1的

redis - 增加默认内存和hash,设置redis的key limit

我正在编写一个JAR文件,它从Oracle数据库中获取大量数据并存储在Redis中。详细信息已正确存储,但我在jar中定义的setkey和hashkey在redisdb中受到限制。应该有近200个Hash和300个setkey。但是,在redis中提供键*时,我只得到29个键。请帮助增加redis内存或哈希的限制或设置key存储大小。注意:我改变了哈希最大zipmap条目1024哈希最大zipmap值64手动在redis.conf文件中。但是,它没有反射(reflect)。哪里需要改? 最佳答案 除了内存大小(检查maxmemory

arrays - 如何为redis展平哈希

在redis中我需要像这样创建hset:@redis.hsetkey,param1,val1,param2,val2我有n个哈希:params={:a=>"x",:b=>"y"}展平:params={:a=>"x",:b=>"y"}.flatten#=>[:a,"x",:b,"y"]但是我不能这样做:@redis.hmsetkey,params因为它传递的是一个数组:@redis.hmsetkey,[:a,"x",:b,"y"]我需要对数组做一些事情来做到这一点:@redis.hmsetkey,:a,"x",:b,"y"你能帮帮我吗? 最佳答案