A very simple shared memory dict implementation
Project description
Shared Memory Dict
A very simple shared memory dict implementation.
Requires: Python >= 3.8
>> from shared_memory_dict import SharedMemoryDict
>> smd = SharedMemoryDict(name='tokens', size=1024)
>> smd['some-key'] = 'some-value-with-any-type'
>> smd['some-key']
'some-value-with-any-type'
The arg
name
defines the location of the memory block, so if you want to share the memory between process use the same name
Installation
Using pip
:
pip install shared-memory-dict
Locks
To use multiprocessing.Lock on write operations of shared memory dict set environment variable SHARED_MEMORY_USE_LOCK=1
.
Django Cache Implementation
There's a Django Cache Implementation with Shared Memory Dict:
# settings/base.py
CACHES = {
'default': {
'BACKEND': 'shared_memory_dict.caches.django.SharedMemoryCache',
'LOCATION': 'memory',
'OPTIONS': {'MEMORY_BLOCK_SIZE': 1024}
}
}
This implementation is very based on django LocMemCache
Install with: pip install "shared-memory-dict[django]"
AioCache Backend
There's also a AioCache Backend Implementation with Shared Memory Dict:
From aiocache import caches
caches.set_config({
'default': {
'cache': 'shared_memory_dict.caches.aiocache.SharedMemoryCache',
'size': 1024,
},
})
This implementation is very based on aiocache SimpleMemoryCache
Install with: pip install "shared-memory-dict[aiocache]"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for shared_memory_dict-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1fec38c65299c7b8f6142c32893e125ee12b5e663166ea50faaed4bf5fff8d0 |
|
MD5 | b9770628fe89a34ed5e1f7633ec24a69 |
|
BLAKE2b-256 | 5ac10b95f1e9795e11dabae8def2401366b55a72cff3770a429c83ee3f3bcfe8 |