मैं redis का उपयोग django कैश के लिए इन-मेमोरी डेटाबेस बैकएंड के रूप में कर रहा हूं।रेडिस-क्ली के माध्यम से सभी चाबियाँ कैसे दिखाएं?
विशेष रूप से, मैं django-redis कॉन्फ़िगर किया गया का उपयोग इस प्रकार है:
CACHES = {
'default': {
'BACKEND': 'redis_cache.cache.RedisCache',
'KEY_PREFIX': DOMAIN_NAME,
'LOCATION': 'unix:/tmp/redis_6379.sock:1',
'OPTIONS': {
'PICKLE_VERSION': -1, # default
'PARSER_CLASS': 'redis.connection.HiredisParser',
'CLIENT_CLASS': 'redis_cache.client.DefaultClient',
},
},
}
मेरे Django कैश सही ढंग से काम करने लगते हैं।
अजीब बात यह है कि मैं redis-cli
कमांड लाइन का उपयोग कर django कैश कुंजी नहीं देख सकता।
[संपादित करें] निम्नलिखित है कि मैं
$ redis-cli
और
$ redis-cli -s /tmp/redis_6379.sock
[endedit]
कोई अंतर के साथके साथ दोनों की कोशिश की में नोटिस करें।
विशेष रूप से, KEYS *
आदेश का उपयोग:
$ redis-cli
redis 127.0.0.1:6379> keys *
(empty list or set)
लेकिन
redis 127.0.0.1:6379> set stefano test
OK
redis 127.0.0.1:6379> keys *
1) "stefano"
जबकि Django खोल से:
In [1]: from django.core.cache import cache
In [2]: cache.keys('*')
Out[2]:
[u'django.contrib.sessions.cachebblhwb3chd6ev2bd85bawuz7g6pgaij8',
u'django.contrib.sessions.cachewpxiheosc8qv5w4v6k3ml8cslcahiwna']
अगर मैं CLI पर MONITOR
उपयोग कर रहा हूँ:
redis 127.0.0.1:6379> monitor
OK
1373372711.017761 [1 unix:/tmp/redis_6379.sock] "KEYS" "project_prefix:1:*"
मैं django कैश उपसर्ग का उपयोग करके एक अनुरोध देख सकता हूं; जो साबित करना चाहिए कि रेडिस-क्ली एक ही सेवा से जुड़ा हुआ है। लेकिन फिर भी redis-cli
में है कि उपसर्ग के लिए खोज रिटर्न एक (empty list or set)
कि क्यों है?
एक ही रेडिस उदाहरण पर विभिन्न कैशों को विभाजित करने वाली तंत्र क्या है?
रेडिस-क्ली कमांड और उत्तर के जवाब में उपयोग किए गए पैरामीटर पर कुछ टिप्पणियां – Stefano