mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00

- implement shared_redis.RedisCacheSharedDict to store key/value pairs in the redis DB. The default key_prefix is 'SearXNG_SharedDict'. - simplify searx.shared and import RedisCacheSharedDict, set key_prefix to 'SearXNG_storage' Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
# lint: pylint
|
|
# pyright: strict
|
|
"""Module implements a :py:class:`shared_abstract.SharedDict` to store data in a
|
|
redis DB (:py:obj:`redisdb`)."""
|
|
|
|
from typing import Optional
|
|
from . import shared_abstract
|
|
from . import redisdb
|
|
|
|
class RedisCacheSharedDict(shared_abstract.SharedDict):
|
|
"""Store key/value in the redis DB, the default prefix of the key in the DB is
|
|
``SearXNG_SharedDict`` (see :py.obj:`searx.redislib.purge_by_prefix`)."""
|
|
|
|
def __init__(self, key_prefix='SearXNG_SharedDict'):
|
|
self.key_prefix = key_prefix
|
|
|
|
def get_int(self, key: str) -> Optional[int]:
|
|
return int(redisdb.client().get(self.key_prefix + key))
|
|
|
|
def set_int(self, key: str, value: int):
|
|
redisdb.client().set(self.key_prefix + key, str(value).encode())
|
|
|
|
def get_str(self, key: str) -> Optional[str]:
|
|
value = redisdb.client().get(self.key_prefix + key)
|
|
return None if value is None else value.decode()
|
|
|
|
def set_str(self, key: str, value: str):
|
|
redisdb.client().set(self.key_prefix + key, value.encode())
|