0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RedisのUbuntuへのインストールとメリットとデメリット

Last updated at Posted at 2022-12-07

1.Redisダウンロード
Redisをダウンロードして解凍。

wget https://github.com/redis/redis/archive/7.0.5.tar.gz

2.Redisコンパイルとテスト

tar xzf redis-7.0.5.tar.gz
cd redis-7.0.5
make 
make test

3.redis-pyインストール

sudo apt install redis-tools
pip3 install redis

4.起動

redis-server
or 
/usr/local/bin/redis-server

5.インストール後は下記のようになります。

cd usr/local/bin
usr/local/bin$ ls -ltr

-rwxr-xr-x 1 root  root  11642728 12月  7 15:57 redis-server
-rwxr-xr-x 1 root  root   5492968 12月  7 15:57 redis-benchmark
-rwxr-xr-x 1 root  root   5379584 12月  7 15:57 redis-cli
lrwxrwxrwx 1 root  root        12 12月  7 15:57 redis-sentinel -> redis-server
lrwxrwxrwx 1 root  root        12 12月  7 15:57 redis-check-rdb -> redis-server
lrwxrwxrwx 1 root  root        12 12月  7 15:57 redis-check-aof -> redis-server

6.Redisの操作

起動
sudo systemctl start redis

停止
sudo systemctl stop redis

自動起動
sudo systemctl enable redis

再起動
sudo systemctl restart redis

7.Redisのメリットとデメリット

メリット

1:Redisを利用するメリットの1つめは、複雑な型のデータを操作し保存できること
Redisとは、Key-Valueによってデータを保存するデータベースですが、一般的なKey-Valueのデータベースとは違って、複数のデータ型が用意される。
文字列型やリスト型、ハッシュ型などのさまざまなデータ型が用意されており、複雑な方のデータも操作して保存できる。

2:各種アプリケーションから高速でアクセスできる
Redisとは、メモリ上で動作するデータベースのことで、データへ高速にアクセスできるのが特徴的です。
Redisとは非リレーショナルデータベースでもあるので、リレーショナルデータベースよりも高速にデータにアクセスでき、各種アプリケーションからも高速でアクセスできる。

3:不整合が生じない
Redisを利用するメリットの3つめは、不整合が生じないこと。
Redisとは、トランザクション処理のように複数の操作を一連の流れで実行する際にも、全ての操作が正しく完了しない限り、データが最初の状態に戻る。複数の処理がすべて実行されるか、全く実行されないことが保証されているので、複雑な操作の際にも不整合が検出されない。
非リレーショナルな多様なデータ)をRDBで扱うのはそもそも辛い


4:各言語のクライアントで取得したデータを使用可能
Redisを利用するメリットの4つめは、各言語のクライアントで取得したデータを使用可能なことです。
Redisとは、Key-Valueストアというデータベースサーバーなのですが、一般的なKey-Valueストアと違ってデータ型が用意されている。
データ型を利用することで、JavaやPython、PHPなどの各言語のクライアントで取得したデータを使用できる
LaravelやdjangoやSpringBoot等に組み込むことも可能といえば可能。


※利点がありそうな用途は以下かと思います。
IoTデータの一時保存先として使う時
一時的にしか使わないデータ→キャッシュやセッション情報やワンタイムトークン等
コマンドで削除するか,timeoutを設定しない限りは削除されない。
(古いデータを自動削除されません。)
複雑なデータ型が必要な場合や永続化が必要な場合
pub/subが必要な場合
フェイルオーバーが必要な時。

デメリット

1.揮発性がある
Redisとは、メモリ上で動作するデータベースなので、データに揮発性があります。
データベースが動作するメインメモリは、高速にデータへアクセスできるが、一時的にしか保存できない。
揮発性のあるRedisでは、RDBやAOFなどを利用して、HDDやSSDなどの永続的に保存できるストレージに、
データベースのバックアップを取っておくことが必要となる。

2メモリの消費が大きい
常にメモリを消費してしまい、他の作業に割けるリソースが減ってしまいます。
また、データベースの書き込みや削除を繰り返すことで、
メモリ内のデータが断片化してしまい、コンピューターのパフォーマンスが低下する可能性がある。

3.マルチスレッド処理には向きません。


下記のURLを参考に考察を記載しました。
[DBいろいろ]
(https://prograshi.com/platform/database/concept-when-selecting-db)

近々nosqlであるMongoDBの記事も併せて記載するかもです。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?