import redis
client = redis.Redis(host = '127.0.0.1', port = 6379)
client.set('str512', "a" * int(512 * 1024 * 1024))
print(client.strlen('str512'))
以下のように実行します。
$ python string512.py
536870912
512MBより大きい値を送ると以下のエラーが返ってきます。
$ python string512.py
Traceback (most recent call last):
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 706, in send_packed_command
sendall(self._sock, item)
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/_compat.py", line 9, in sendall
return sock.sendall(*args, **kwargs)
OSError: [Errno 41] Protocol wrong type for socket
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/hayashier/string512.py", line 4, in <module>
client.set('str512', "a" * (512 * 1024 * 1024 + 1))
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/client.py", line 1801, in set
return self.execute_command('SET', *pieces)
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/client.py", line 900, in execute_command
conn.send_command(*args)
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 725, in send_command
self.send_packed_command(self.pack_command(*args),
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 717, in send_packed_command
raise ConnectionError("Error %s while writing to socket. %s." %
redis.exceptions.ConnectionError: Error 41 while writing to socket. Protocol wrong type for socket.
$ python string512.py
Traceback (most recent call last):
File "/Users/hayashier/string512.py", line 4, in <module>
client.set('str512', "a" * (1 * 1024 * 1024 * 1024))
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/client.py", line 1801, in set
return self.execute_command('SET', *pieces)
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/client.py", line 901, in execute_command
return self.parse_response(conn, command_name, **options)
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/client.py", line 915, in parse_response
response = connection.read_response()
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 739, in read_response
response = self._parser.read_response()
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 324, in read_response
raw = self._buffer.readline()
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 256, in readline
self._read_from_socket()
File "/Users/hayashier/.pyenv/versions/3.9.0/lib/python3.9/site-packages/redis/connection.py", line 201, in _read_from_socket
raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR)
redis.exceptions.ConnectionError: Connection closed by server.