Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从redis获取所有包含字符串的密钥_Redis_Django Redis - Fatal编程技术网

从redis获取所有包含字符串的密钥

从redis获取所有包含字符串的密钥,redis,django-redis,Redis,Django Redis,我将一些数据存储在redis中,并带有以下给定的键 我在redis中存储了一些钥匙,就像 key1 = https://abc.net/v/140225014843/css/ key2 = https://abc.net/v/153729007613/css/ key3 = https://abc.net/v/240125414249/css/ key4 = https://abc.net/v/140225014843/css/:tokens key5 = https://abc.net/v/2

我将一些数据存储在
redis
中,并带有以下给定的键
我在redis中存储了一些钥匙,就像

key1 = https://abc.net/v/140225014843/css/ key2 = https://abc.net/v/153729007613/css/ key3 = https://abc.net/v/240125414249/css/ key4 = https://abc.net/v/140225014843/css/:tokens key5 = https://abc.net/v/240125414249/css/:tokens 键1=https://abc.net/v/140225014843/css/ 键2=https://abc.net/v/153729007613/css/ 键3=https://abc.net/v/240125414249/css/ 键4=https://abc.net/v/140225014843/css/:tokens 键5=https://abc.net/v/240125414249/css/:tokens 现在我有了
data=140225014843
我想获取key和它的值,它里面有数据。
示例:key1中有数据,所以我想从redis获取key1。 我正在使用django redis

编辑:

Key4中也有数据,但我只想获取与key1类似的模式的密钥。

您应该重新考虑命名密钥的方式,因为这是一个重要的决定

您可以为您拥有的每个数据值使用一个,该值是键,该数据值的“路径”是列表的成员

例如,在您的情况下,您可以:

redis> RPUSH 140225014843 "css/"
redis> RPUSH 153729007613 "css/"
redis> RPUSH 240125414249 "css/"
redis> RPUSH 140225014843 "css/:tokens"
redis> RPUSH 240125414249 "css/:tokens"
根据数据中的可变部分,您可以调整此方法。例如,如果“css/”始终存在,则可以忽略它


此外,您可能不希望列表中出现重复项,在这种情况下,您应该使用a来代替。

我使用了
红色键(“140225014843”)
。但这里的输出将是
['',abc.net/v/14022501484/css/'。。。。我只想要abc.net/v/14022501484/css/的值,您如何命名密钥在redis中非常重要。在上面的结构中,我认为键对于您试图执行的操作没有任何用处。您试图做的是从模式匹配值中获取密钥,这些值溶解了密钥的所有用途。URL中的这些数字(例如140225014843)是什么?数据的大小是多少?你能改变数据结构吗?数据结构已经更好了。。在一次操作中,我得到了数据的价值。like data=140225014843。数据与redis中的其他键进行映射。像redis.hget(“”,数据)。。。在这里,我可以获取数据的值,所以我想从数据中获取存储在redis中的版本化url(key1)。完全正确!!!我的观点是。如果您的密钥应该是140225014843,并且设置为包含所有包含140225014843的URL,这不是更好吗。通过这样做,您的建议将获得O(1)个绩效考核。这是一个更好的方法