草庐IT

有序表

全部标签

sql - 如何在 SQL 中表示和插入有序列表?

我想在SQL表中表示列表“hi”、“hello”、“goodbye”、“goodday”、“howdy”(按照该顺序):pk|i|val------------1|0|hi0|2|hello2|3|goodbye3|4|goodday5|6|howdy'pk'是主键列。忽略它的值。“i”是定义“val”列中值顺序的“索引”。它仅用于建立顺序,否则值不重要。我遇到的问题是在保持顺序的同时将值插入列表。例如,如果我想插入“嘿”并且希望它出现在“你好”和“再见”之间,那么我必须改变“再见”和“好”的“i”值day”(但最好不是“howdy”)为新条目腾出空间。那么,是否有一个标准的SQL模式

Redis - 如何将 zrange 查询的结果存储为另一个有序集

例如我用这个命令创建一个排序集:zaddkey11u12u23u3现在我要查询最后2个项目并存储在其他键下,比如key2。我知道我需要这样查询:zrangekey1-2-1但我不知道如何使用key2存储结果。抱歉,菜鸟问题,我是Redis的新手,只需2小时:) 最佳答案 虽然Redis没有内置命令来执行此操作,但您可以使用Lua脚本轻松安全地完成操作。这一点有点棘手,因为ZRANGE的回复需要在成员分数对之间进行交换,以用作ZADD的输入。localsrc,dst=KEYS[1],KEYS[2]localfrom,to=ARGV[1

java - 在 Java 中,如何从 Redis hkeys(key) 中获取一个有序的 Set?

我将哈希值保存在redis(jedis)中,如下所示:(键、字段、值)sampleKey,01234::Test,firstValuesampleKey,01234::Real,secondValuesampleKey,01235::Test,firstValuesampleKey,01235::Real,secondValue然后使用“Setset=jedis.hkeys(sampleKey)”得到一个set,然后通过System.arraycopy转换成Array。我检查了数组,数据存储方式与“01235::Test、01234::Real、01235::Real、01234::T

python - 合并和求和 redis 有序集

由于使用pythondict处理海量数据性能不佳,我设法迁移到redis。所以我有以下内容:"doc1"=>('989',4.0),('99',4.0),('990',4.0),('991',4.0),('992',4.0),('993',4.0),('994',4.0),('995',4.0),('996',4.0),('997',4.0),('998',4.0),('999',4.0)"doc2"=>('4',4.0),('21',4.0),('55',4.0),('991',4.0),('992',4.0),('993',4.0),('994',4.0),('995',4.0),

Redis:是否可以按其他键值对具有相同分数的有序集合结果进行排序

ZADDmyset1ad1ZADDmyset1ad2SETorder:ad11SETorder:ad22如何先按有序集分数排序,再按订单值排序? 最佳答案 如果你想存储一个结果(不改变数据存储的方式),那么你可以使用SORT命令。可以应用于zset。例如:>zaddmyset1albert>zaddmyset1joseph>zaddmyset4bertrand>zaddmyset2casimir>zaddmyset3alfred您可以按值排序:>sortmysetalpha1)"albert"2)"alfred"3)"bertran

redis - 使用 Redis 有序集中的部分键名查找值

我有一个排序集,它具有以下键名和值:zrangebargraph:branch:1:category:2:product:41)"76"2)"55"3)"10"4)"84"redis中是否有一种机制可以在使用zrange时使用通配符(也许是?)来获得相同的值?也就是说,redis是否支持zrangebargraph:branch:1:category:2?如果不是,如果我只知道类别ID(2)而不知道产品ID(4),而不使用不同的排序集,我如何才能最好地获得所有值? 最佳答案 这是2015年的更新答案。如果你可以将Redis升级到2.

代码随想录算法训练营第二天 | 977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵2

代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵2|9.22977.有序数组的平方暴力法将数组元素全部平方用冒泡排序进行升序排序classSolution{publicint[]sortedSquares(int[]nums){for(inti=0;inums.length;i++){nums[i]=nums[i]*nums[i];}for(inti=0;inums.length;i++){for(intj=0;jnums.length-1-i;j++){if(nums[j]>nums[j+1]){inttemp=nums[j];nums[j]=nu

redis - Redis 中的有序集基于多个条件

我正在尝试创建一个redisorderedset.问题是需要根据时间戳和分数这两个标准进行排序。但是在redis中,我只能提供一个排序标准:ZADD{key}{timestamp}{value}请问如何在此排序中添加分数?更新:这是我将两个不同的排序因子合并为一个浮点分值的方法:varscore=Math.floor(result.created_time/(60*60*24*1000));score=score+(result.matches/10);为了说明,我先将时间戳转换为天数。我的“匹配”值通常为0-10。因此,转换为十进制值并添加为分数权重。这给了我得分最高的条目,每天排序

redis - 是否可以复制 Redis 有序集?

我在Redis中处理两个排序集。在某个时候,我需要使set1过期,将set2重命名为set1。这将删除set2。然后我需要复制set1以重新创建set2作为副本。这可能吗?我发现了zunionstore在Redis文档中,但我不确定这是我想要的。 最佳答案 的确,zunionstore似乎工作正常。它在指定的集合之间进行并集,并存储结果。如果您只提供一套,它会制作一份副本。至少,我刚刚尝试了一下,它似乎有效:zaddfoo1azaddfoo2bzunionstorebar1foozrangebar0-11)"a"2)"b"

redis - 在 Redis 有序集中存储整数?

我有一个系统可以处理已变成无符号长整数的键(通过将短序列打包成字节串)。我想尝试将这些存储在Redis中,并且我想以尽可能最好的方式进行。我主要关心的是内存效率。通过玩在线REPL,我注意到以下两个是相同的zaddmyset1.0"123"zaddmyset1.0123这意味着即使我知道我要存储一个整数,它也必须设置为一个字符串。我从文档中注意到,key仅存储为char*并且命令类似于SETBIT表明Redis不反对在客户端将字符串视为字节串。这暗示了一种存储unsignedlong的方式比它们的字符串表示形式稍微更有效。在有序集合中存储unsignedlong的最佳方式是什么?