key-value store(, in-memory data store)

永井 忠一 2024.10.17


Memcached

インストール

Linux apt
$ sudo apt install memcached libcache-memcached-perl python3-memcache pypy3

(確認は「$ systemctl status memcached」)

接続テスト

PerlPython
set
use strict;
use warnings;

use Cache::Memcached;

my $cache = Cache::Memcached->new({ servers => ['localhost:11211'] }) or die;

$cache->set("test-key", "test record") or die;
import memcache

cache = memcache.Client(['localhost:11211'])

cache.set('test-key', 'test record')
get
use strict;
use warnings;

use Cache::Memcached;

my $cache = Cache::Memcached->new({ servers => ['localhost:11211'] }) or die;

my $value = $cache->get("test-key");

if (defined $value) {
    print("$value\n");
}
import memcache

cache = memcache.Client(['localhost:11211'])

value = cache.get('test-key')

if (value is not None):
    if (type(value) == bytes): # adhoc
        value = value.decode()
    assert type(value) == str
    print(value)
delete
use strict;
use warnings;

use Cache::Memcached;

my $cache = Cache::Memcached->new({ servers => ['localhost:11211'] }) or die;

$cache->delete("test-key");
import memcache

cache = memcache.Client(['localhost:11211'])

cache.delete('test-key')

(100% Python(Pure Python) interface のため、PyPy でも実行可能)

参照したドキュメント


Deno KV

Node.js から利用。インストール

Linux apt, npm
$ sudo apt install nodejs npm

$ npm install @deno/kv

(備忘録)

$ cat package.json
{
    "type": "module",
    "dependencies": {
        "@deno/kv": "^0.12.0"
    }
}

テストコード

JavaScript
import { openKv } from "@deno/kv";

const cache = await openKv(/* "test.db" */);

await cache.set(["test-key"], "test record");

// console.time()
const result = await cache.get(["test-key"]);
// console.timeEnd()
if (result.value !== null) {
    console.log(result.value);
}

await cache.delete(["test-key"]);

注意!

CAUTION
Deno KV is still in development and may change. ...snip...

ドキュメント


© 2024 Tadakazu Nagai