Почему django cache.set() хранит странные символы

Когда я сохраняю строку через кэш-фреймворк django

from django.core.cache import cache

cache.set('host_cache_key_81e44325-c046-44c6-88d7-bad7cd91ec13', ""brown.example.com:8006")

И попытайтесь извлечь значение:

127.0.0.1:6379> get :1:host_cache_key_81e44325-c046-44c6-88d7-bad7cd91ec13
"\x80\x05\x95&\x00\x00\x00\x00\x00\x00\x00\x8c\"brown.example.com:8006\x94."

Я получаю некоторые странные символы вокруг него, почему это так и как сделать так, чтобы он не делал этого?

Django использует pickle для хранения данных, которые хранятся в кэше, то, что вы видите - это строка, сериализованная в формате pickle.

В качестве примера вот вывод, который я получаю при мариновании строки примера

>>> import pickle
>>> pickle.dumps("brown.example.com:8006")
b'\x80\x04\x95\x1a\x00\x00\x00\x00\x00\x00\x00\x8c\x16brown.example.com:8006\x94.'
Вернуться на верх