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