Module jumpscale.tools.redis.redis
Expand source code
from jumpscale.loader import j
from jumpscale.core.base import Base, fields
import shutil
class RedisServer(Base):
    host = fields.String(default="127.0.0.1")
    port = fields.Integer(default=6379)
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._cmd = j.tools.startupcmd.get(f"redis_{self.instance_name}")
    @property
    def cmd(self):
        self._cmd.start_cmd = f"redis-server --bind {self.host} --port {self.port}"
        self._cmd.ports = [self.port]
        return self._cmd
    @property
    def installed(self) -> bool:
        """check if redis server is installed
        Returns:
            bool: True if redis server is installed
        """
        return shutil.which("redis-server")
    def start(self):
        """start redis server in tmux
        """
        # Port is not busy (Redis is not started)
        if not j.sals.nettools.tcp_connection_test(self.host, self.port, timeout=1):
            self.cmd.start()
    def stop(self):
        """stop redis server
        """
        self.cmd.stop(force=True)
    def restart(self):
        """restart redis server
        """
        self.stop()
        self.start()
Classes
class RedisServer (*args, **kwargs)- 
A simple attribute-based namespace.
SimpleNamespace(**kwargs)
base class implementation for any class with fields which supports getting/setting raw data for any instance fields.
any instance can have an optional name and a parent.
class Person(Base): name = fields.String() age = fields.Float() p = Person(name="ahmed", age="19") print(p.name, p.age)Args
parent_:Base, optional- parent instance. Defaults to None.
 instance_name_:str, optional- instance name. Defaults to None.
 **values- any given field values to initiate the instance with
 
Expand source code
class RedisServer(Base): host = fields.String(default="127.0.0.1") port = fields.Integer(default=6379) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._cmd = j.tools.startupcmd.get(f"redis_{self.instance_name}") @property def cmd(self): self._cmd.start_cmd = f"redis-server --bind {self.host} --port {self.port}" self._cmd.ports = [self.port] return self._cmd @property def installed(self) -> bool: """check if redis server is installed Returns: bool: True if redis server is installed """ return shutil.which("redis-server") def start(self): """start redis server in tmux """ # Port is not busy (Redis is not started) if not j.sals.nettools.tcp_connection_test(self.host, self.port, timeout=1): self.cmd.start() def stop(self): """stop redis server """ self.cmd.stop(force=True) def restart(self): """restart redis server """ self.stop() self.start()Ancestors
- Base
 - types.SimpleNamespace
 
Instance variables
var cmd- 
Expand source code
@property def cmd(self): self._cmd.start_cmd = f"redis-server --bind {self.host} --port {self.port}" self._cmd.ports = [self.port] return self._cmd var host- 
getter method this property
will call
_get_value, which would if the value is already defined and will get the default value if notReturns
any- the field value
 
Expand source code
def getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field) var installed : bool- 
check if redis server is installed
Returns
bool- True if redis server is installed
 
Expand source code
@property def installed(self) -> bool: """check if redis server is installed Returns: bool: True if redis server is installed """ return shutil.which("redis-server") var port- 
getter method this property
will call
_get_value, which would if the value is already defined and will get the default value if notReturns
any- the field value
 
Expand source code
def getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field) 
Methods
def restart(self)- 
restart redis server
Expand source code
def restart(self): """restart redis server """ self.stop() self.start() def start(self)- 
start redis server in tmux
Expand source code
def start(self): """start redis server in tmux """ # Port is not busy (Redis is not started) if not j.sals.nettools.tcp_connection_test(self.host, self.port, timeout=1): self.cmd.start() def stop(self)- 
stop redis server
Expand source code
def stop(self): """stop redis server """ self.cmd.stop(force=True) 
Inherited members