Skip to main content

An first in first out cache module.

Project description

System Requirements

  • Python >= 3.7
  • moca_core
  • moca_config
  • moca_log_file

Installation

pip install moca_simple_cache==1.0.9
or
pip install moca_simple_cache

Overview

English

This is the first in first out cache module developed by el.ideal-ideas for Moca System. The pool-size is the maximum number of cache. System will remove old cache (one page) from memory when the cache is full. And you can save the cache to file, or load from file manually.


日本語

これはモカシステムのためにel.ideal-ideasによって開発された先入れ先出しのキャッシュモジュールである。 プールサイズは保存できるキャッシュの総数です。 キャッシュがいっぱいになると、古いものから1ページ分削除されます。 手動でキャッシュをファイルに保存したり、ファイルから読み込んだりすることも出来ます。


简体中文

这是el.ideal-ideas为茉客系统开发的先入先出的缓存模块。 pool-size的值是可以保存的缓存数量的上限。 如果缓存到达上限,系统会从旧的缓存开始删除一页(page-size)的缓存。 您也可以手动把缓存保存到文件,或者从文件读取缓存。

Usage Example

# Create a instance
# インスタンス化
# 生成实例
moca_cache = MocaSimpleCache('sample', pool_size=10000, page_size=500)

# With MocaLogFile and MocaConfig
# MocaLogFile と MocaConfig と一緒に使用する
# 和 MocaLogFile, MocaConfig 一起使用
moca_config = MocaConfig('test', './test/test.json')
moca_log = MocaLogFile('sample_app', './', config=moca_config, log_level=1)
moca_cache = MocaSimpleCache('sample', moca_log=moca_log, moca_config=moca_config)

# Set cache
# キャッシュを保存
# 保存缓存
moca_cache.set('key0', [0, 1, 2, 3])

# Get cache
# キャッシュ取得
# 获取缓存
moca_cache.get('key0', list, default=[]) # [0, 1, 2, 3]
moca_cache.get('key0', default=[]) # [0, 1, 2, 3]

# If the response type is incorrect return default
# 返り値の型が異なる場合はデフォルト値を返す。
# 如果返回值类型错误,则返回初始值。
moca_cache.get('key0', str, default=[]) # []
# The __init__ method in MocaSimpleCache class.
# MocaSimpleCacheクラスのイニシャライザー。
# MocaSimpleCache类的生成器。

def __init__(self,
             name: str,
             pool_size: Optional[int] = None,
             page_size: Optional[int] = None,
             moca_log: Optional[MocaLogFile] = None,
             moca_config: Optional[MocaConfig] = None):
    """
    :param name: The name of this instance.
    :param pool_size: The pool size of this instance.
    :param page_size: The page size of this instance.
    :param moca_log: The instance of MocaLogFile.
    :param moca_config: The instance of MocaConfig.
    """

Public Methods

  • def remove_old_data(limit: int) -> None:

    • This method can remove old cache manually.
    • このメソッドは古いキャッシュを手動で削除できます。
    • 这个方法可以手动删除古老的缓存。
  • def set(key: str, value: Any) -> None:

    • Set a cache.
    • キャッシュを追加。
    • 添加缓存。
  • def get(key: str, res_type: Any = any, default: Any = None) -> Any:

    • Get a cache.
    • キャッシュを取得する。
    • 获取缓存。
  • def remove_cache(key: str) -> None:

    • Remove a cache by key.
    • 特定のキャッシュを削除する。
    • 删除指定缓存。
  • def change_pool_size(size: int) -> None:

    • Change the pool size.
    • プールサイズを変更。
    • 更改缓存池大小。
  • def change_page_size(size: int) -> None:

    • Change the page size.
    • ページサイズを変更。
    • 更改缓存页大小。
  • def clear_all() -> None:

    • Clear all cache
    • すべてのキャッシュを削除。
    • 删除所有缓存。
  • def save_cache_to_file(filepath: Optional[Union[Path, str]] = None) -> bool:

    • Save cache to file.
    • キャッシュをファイルに保存する。
    • 把缓存保存到文件。
  • def load_cache_from_file(filepath: Optional[Union[Path, str]] = None) -> bool:

    • Load cache from file.
    • ファイルからキャッシュを読み込む。
    • 从文件读取缓存。
  • def set_auto_clear_timer(seconds: float) -> None:

    • This method can set a timer to clear all cache automatically.
    • このメソッドはキャッシュの自動削除を定期的に行うタイマーをセットできます。
    • 这个方法可以设定一个自动删除缓存的时钟。
  • def stop_auto_clear_timer() -> None:

    • This method can stop the auto-clear-timer.
    • このメソッドは自動削除のタイマーを止めることができます。
    • 这个方法可以停止自动删除缓存的时钟。

License

  • MIT License
Copyright 2020.1.17 <el.ideal-ideas: https://www.el-ideal-ideas.com>

Permission is hereby granted, free of charge, 
to any person obtaining a copy of this software 
and associated documentation files (the "Software"),
to deal in the Software without restriction, 
including without limitation the rights to use, copy, 
modify, merge, publish, distribute, sublicense, 
and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, 
subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH 
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Other Information

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for moca-simple-cache, version 1.0.9
Filename, size File type Python version Upload date Hashes
Filename, size moca_simple_cache-1.0.9-py3-none-any.whl (9.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size moca_simple_cache-1.0.9.tar.gz (9.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page