Tôi đang sử dụng redis dưới dạng bộ đệm cơ sở dữ liệu trong bộ nhớ cho bộ nhớ đệm django.Làm thế nào để hiển thị TẤT CẢ các phím thông qua redis-cli?
Đặc biệt, tôi sử dụng django-redis cấu hình như sau:
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',
},
},
}
bộ nhớ cache django tôi dường như để làm việc một cách chính xác.
Điều kỳ lạ là tôi không thể thấy các phím bộ nhớ đệm django sử dụng dòng lệnh redis-cli
.
[sửa] Xin lưu ý trong những điều sau đây mà tôi đã cố gắng cả với
$ redis-cli
và
$ redis-cli -s /tmp/redis_6379.sock
[EndEdit]
không có sự khác biệt.
Đặc biệt, sử dụng KEYS *
lệnh:
$ redis-cli
redis 127.0.0.1:6379> keys *
(empty list or set)
nhưng
redis 127.0.0.1:6379> set stefano test
OK
redis 127.0.0.1:6379> keys *
1) "stefano"
khi từ vỏ 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']
Nếu tôi đang sử dụng MONITOR
trên cli:
redis 127.0.0.1:6379> monitor
OK
1373372711.017761 [1 unix:/tmp/redis_6379.sock] "KEYS" "project_prefix:1:*"
Tôi có thể thấy yêu cầu, sử dụng tiền tố bộ đệm django; mà nên chứng minh redis-cli được kết nối với cùng một dịch vụ. Nhưng ngay cả khi tìm kiếm tiền tố đó trong số redis-cli
trả về một số (empty list or set)
Tại sao lại như vậy?
Các cơ chế nào ngăn cách các bộ đệm khác nhau trên cùng một cá thể redis?
Một số nhận xét về lệnh redis-cli và tham số được sử dụng để trả lời câu trả lời nghi ngờ – Stefano