class ssdb.connection.Connection(host='', port=8888, socket_timeout=None, socket_connect_timeout=None, socket_keepalive=False, socket_keepalive_options=None, retry_on_timeout=False, encoding='utf-8', encoding_errors='strict', decode_responses=False, parser_class=<class 'ssdb.connection.PythonParser'>, socket_read_size=65536)

Manages TCP communication to and from a SSDB server

>>> from ssdb.connection import Connection
>>> conn = Connection(host='localhost', port=8888)
class ssdb.connection.ConnectionPool(connection_class=<class 'ssdb.connection.Connection'>, max_connections=None, **connection_kwargs)

Generic connection pool.

>>> from ssdb.client import SSDB
>>> client = SSDB(connection_pool=ConnectionPool())

If max_connections is set, then this objectraises ssdb.ConnectionError when the pool’s limit is reached. By default, TCP connections are created connection_class is specified. Any additionan keyword arguments are passed to the constructor of connection_class.

class ssdb.connection.BlockingConnectionPool(max_connections=50, timeout=20, connection_class=<class 'ssdb.connection.Connection'>, queue_class=<class Queue.LifoQueue>, **connection_kwargs)

Thread-safe blocking connection pool:

>>> from ssdb.client import SSDB
>>> client = SSDB(connection_pool=BlockingConnectionPool())

It performs the same function as default :py:class: ~ssdb.connection.ConnectionPool implementation, in that, it maintains a pool of reusable connections that can be shared by multiple ssdb clients (safely across threads if required).

The difference is that, in the event that a client tries to get a connection from the pool when all of connections are in use, rather than raising a :py:class: ~ssdb.exceptions.ConnectionError (as the default :py:class: ~ssdb.connection.ConnectionPool implementation does), it makes the client wait (“blocks”) for a specified number of seconds until a connection becomes available/].

Use max_connections to increase / decrease the pool size:

>>> pool = BlockingConnectionPool(max_connections=10)

Use timeout to tell it either how many seconds to wait for a connection to become available, or to block forever:

>>> #Block forever.
>>> pool = BlockingConnectionPool(timeout=None)
>>> #Raise a ``ConnectionError`` after five seconds if a connection is not
>>> #available
>>> pool = BlockingConnectionPool(timeout=5)