Ignite 在Redis模式下,发送的数据与接收的数据不同

Ignite 在Redis模式下,发送的数据与接收的数据不同,ignite,Ignite,在Redis模式下,发送的数据与接收的数据不同。memcached也有同样的问题。以下是Redis的代码示例: import pickle import redis REDIS = { 'host': 'localhost', 'port': 6379, 'db': 0 } IGNITE = { 'host': 'localhost', 'port': 11211, 'db': 0 } def test_connection(redi

在Redis模式下,发送的数据与接收的数据不同。memcached也有同样的问题。以下是Redis的代码示例:

import pickle    
import redis

REDIS = {
    'host': 'localhost',
    'port': 6379,
    'db': 0
}

IGNITE = {
    'host': 'localhost',
    'port': 11211,
    'db': 0
}

def test_connection(redis_connection):
    d = {
        'a': 1,
        'b': 'AS213dfdsfфывфывфывфа',
        'c': None,
    }
    pickle_dumps = pickle.dumps(d)
    print(pickle_dumps)
    redis_connection.set('foo', pickle_dumps)
    print(redis_connection.get('foo'))
    print('-----------------------')


test_connection(redis.StrictRedis(**IGNITE))
test_connection(redis.StrictRedis(**REDIS))
这就是我运行Ignite的方式:

docker run -p 11211:11211 -it -e "CONFIG_URI=https://raw.githubusercontent.com/apache/ignite/master/examples/config/redis/example-redis.xml" apacheignite/ignite
输出:

b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X \x00\x00\x00AS213dfdsf\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd0\xb0q\x03X\x01\x00\x00\x00cq\x04Nu.'
b'\xef\xbf\xbd\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X \x00\x00\x00AS213dfdsf\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd0\xb0q\x03X\x01\x00\x00\x00cq\x04Nu.'
-----------------------
b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X \x00\x00\x00AS213dfdsf\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd0\xb0q\x03X\x01\x00\x00\x00cq\x04Nu.'
b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X \x00\x00\x00AS213dfdsf\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2\xd1\x84\xd0\xb0q\x03X\x01\x00\x00\x00cq\x04Nu.'
-----------------------

如何修复此问题?

我可以看到\x80被\xef\xbf\xbd替换

后者是

我认为这是将\x80(一个控制字符)写入Ignite内部Unicode流的结果。我可以找到一个类似的问题


提出了在网络环境下使用Pickle的建议。为什么不使用例如JSON?

我可以看到\x80被\xef\xbf\xbd替换

后者是

我认为这是将\x80(一个控制字符)写入Ignite内部Unicode流的结果。我可以找到一个类似的问题

提出了在网络环境下使用Pickle的建议。为什么不使用例如JSON