Skip to content

Update to support newer versions of django-redis #2

@hannu40k

Description

@hannu40k

Hi, seems current version is incompatible with newest versions of django-redis.

Currently getting the following error when trying to write to redis:

File "/srv/metax/pyenv/lib/python3.5/site-packages/django_redis/client/default.py", line 123, in set
client, index = self.get_client(write=True, tried=tried, show_index=True)
TypeError: get_client() got an unexpected keyword argument 'tried'

After fixing the parameters in django_redis_sentinel/client/sentinel.py get_client(), more errors follow:

Traceback (most recent call last):
File "/srv/metax/pyenv/lib/python3.5/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/srv/metax/pyenv/lib/python3.5/site-packages/rest_framework/viewsets.py", line 83, in view
return self.dispatch(request, *args, **kwargs)
File "/srv/metax/pyenv/lib/python3.5/site-packages/rest_framework/views.py", line 483, in dispatch
response = self.handle_exception(exc)
File "/srv/metax/pyenv/lib/python3.5/site-packages/rest_framework/views.py", line 443, in handle_exception
self.raise_uncaught_exception(exc)
File "/srv/metax/pyenv/lib/python3.5/site-packages/rest_framework/views.py", line 480, in dispatch
response = handler(request, *args, **kwargs)
File "/metax/metax-api/src/metax_api/api/base/views/dataset_view.py", line 145, in redis_test
cache.set('cr-1211%s' % pk, data)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django_redis/cache.py", line 33, in _decorator
return method(self, *args, **kwargs)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django_redis/cache.py", line 68, in set
return self.client.set(*args, **kwargs)
File "/srv/metax/pyenv/lib/python3.5/site-packages/django_redis/client/default.py", line 123, in set
client, index = self.get_client(write=True, tried=tried, show_index=True)
File "/srv/metax/pyenv/lib/python3.5/site-packages/redis/client.py", line 890, in getitem
raise KeyError(name)
KeyError: 0

CACHE settings in settings.py:

CACHES = {
'default': {
'BACKEND': "django_redis_sentinel.cache.RedisSentinelCache",
'LOCATION': [
('127.0.0.1', 5000),
('127.0.0.1', 5001),
('127.0.0.1', 5002),
],
'OPTIONS': {
'CLIENT_CLASS': 'django_redis_sentinel.client.SentinelClient',
'SENTINEL_SERVICE_NAME': 'metax-master',
"SOCKET_TIMEOUT": 0.1,
"SOCKET_CONNECT_TIMEOUT": 0.1,
'REDIS_CLIENT_KWARGS': {
'db': 1,
}
}
}
}

Software versions:
redis-server 2:3.0.6-1

Django==1.11.1
django-redis==4.8.0
django-redis-sentinel-redux==0.2.0

I have verified using redis-cli that the redis instances and sentinels are correctly configured, and failover is otherwise working.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions