从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)个绩效考核。这是一个更好的方法