Redis

Redisの概要について

概要

  • In-Mmoeryのデータベース
  • cache, vector database, document database, streaming engineなどで利用されるNoSQLの のDB。
  • Key-Value型のDB
 型

複数の型がありますが、代表的なものを記載します。

  • String型
    KeyとValueが1対1の関係で管理されるデータ型です
  • Hash型
    親Key、子Key、Valueにより管理されるデータ型です。
  • List型
  • Set型
  • SortedSet型
  • Streaming型
    Redisストリームは、Redis用に構築された新しいデータ構造で、時系列データを扱います。
    Redisリストに似ていますが、以下の2点において異なります。
    オリジナルインデックスではなく、タイムスタンプを使用
    各ストリームは、Redisハッシュに似た複数フィールドを持つことが可能
 redis-cli

redis-cliはredisを管理するCLIです。

ログイン

redisにログインする場合は、以下のコマンドを利用します。

 redis-cli  -p 6382 -h localhost

-pはredisサーバが動作しているポート、-hはホスト名です。

共通操作
keyの確認

登録されているKeyの一覧が表示されます。

KEYS * 1) "data2" 2) "data1" 3) "test"

Keyの型の確認

keyの型を確認します。

TYPE key
Keyの型のTTLの確認

以下のコマンドで、各KeyのTTLが確認できます。

ttl Key
  • 0以上:残り秒数
  • -1:TTLの指定がない、または指定したキーが既に存在しない
Hash型のCLI操作
HGET key field
  • HKEYS Keyに登録されているフィールドをすべて返します。
HKEYS key
  • HGETALL keyに登録されているすべてのfieldとValueを返します。
HGEALL key
  • HLEN keyに登録されているフィールドの個数を返します。
HLEN key
Stream型のCLI操作

nerdctlのBuild環境構築手順

以下の手順で、nerdctlのBuild環境構築を構築できます。 手順は、ubuntu20.04で実施しています。

  1. nerdctlのBinaryを入手。
    以下からnerdctlのBinaryを入手できます。
    この時にnerdctl-full-1.7.3-linux-amd64.tar.gz のようにnerdctl-full-xxx のBinaryを取得します。
    rootlesskitのシェルなどが含まれているためです。
    Releases · containerd/nerdctl · GitHub

  2. /usr/local/binに展開します。

#sudo tar Cxzvvf /usr/local/bin nerdctl-0.18.0-linux-amd64.tar.gz
  1. rootlessモードでInstallします。
containerd-rootless-setuptool.sh install

この時、以下のエラーが出たら、uidmapをInstallします。

INFO] Checking RootlessKit functionality
[rootlesskit:parent] error: failed to setup UID/GID map: newuidmap 1747 [0 1000 1 1 100000 65536] failed: : exec: "newuidmap": executable file not found in $PATH
[ERROR] RootlessKit failed, see the error messages and https://rootlesscontaine.rs/getting-started/common/ .
sudo apt install uidmap
  1. DockerfileをBuildする場合は、以下の手順でBuildkitを有効かします。
CONTAINERD_NAMESPACE=default containerd-rootless-setuptool.sh install-buildkit-containerd

./buildkitdでもよいです。

以上で、手順は完了です。
nerdctl build . でBuildできるはずです。

会計 英語

会計 英語

  • 利益率:profit margin
  • 粗利益(売上総利益):gross profit (GP)
  • 営業利益:operating profit / operating income (OP)
  • 経常利益:ordinary profit / ordinary income(※米国基準の会計には経常利益はない)
  • 税引前当期純利益:income before taxes / pretax income
  • 当期純利益:net income / net profit / net earnings

C++ 基礎

標準入力と出力

以下を事項すると、標準入力を求められます。 1 2 3のような形で入力すると、それぞれ、a,b,cに代入されます。

int main(void)
{
    int a, b, c;
    cin >> a >> b >>  c ;         //標準入力
    cout << a << b << c << endl; //標準出力

    return 0;
}

ファイルを1行ずつ読み込みたいとき

#include<iostream>
#include<fstream>
using namespace std;

int main(void){
    //ファイル読み込み
    ifstream ifs("test.java");
    string str;

    if(ifs.fail()){
        cerr << "failed to open";
        return -1;
    }
    //1行ずつifsから読み込み、strに保存する。
    while(getline(ifs, str)){
        cout << "#" << str << endl;
    }

    return 0;
}

Python基礎

 ファイルのオープン

import sys

#コマンドライン引数を取得
argv = sys.argv

if len(argv) < 2:
    print("usage: python sort.py target_filename ");
    exit()

#引数で指定したファイルをオープンし、ファイルを読み込み
with open(argv[-1]) as f:
    lines = f.readlines()
    #ソートして再度変数に代入
    lines_sorted = sorted(lines)
    for l in lines_sorted:
        print(l.rstrip("\n"))