Opened 3 years ago
Last modified 3 years ago
#33361 closed Bug
Redis cache backend doesn't allow storing bool values — at Initial Version
Description ¶
The following code raises an exception: redis.exceptions.DataError: Invalid input of type: 'bool'. Convert to a bytes, string, int or float first.
from django.core.cache import cache cache.set("foo", True)
This contradicts the documentation which states that any data type supported by pickle can be stored to the cache.
The root cause seems to be because instances of int
are special-cased and not send through pickle, but redis-py cannot send booleans to redis:
What was the rationale behind the int
special-case? django-redis
for instance consistently sends all data through pickle.