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}
}
}
Install with: pip install "shared-memory-dict[django]"
Caveat
With Django cache implementation the keys only expire when they're read. Be careful with memory usage
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.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47a5a3d3e7297a0ac4b8c5aef3fef6afe8a1c88d13aabc8c4e066ec83c383fdb |
|
MD5 | 7c5301f72199421a81c165936ea19c66 |
|
BLAKE2b-256 | 4d37785766c82284b764dc1017313ae18618f42d441e8c0764ec6b9254143c77 |