- 1. 概要
- 2. 概念
- 3. 操作
- 4. 参考サイト
1. 概要
「redis」のデータベースに関して、記述します。
2. 概念
ほぼ、「ChatGPT」軍曹の回答ママです。
まずは、概念から。
Redis の データベース 0 / 1 / 2 … は、**1つの Redis インスタンスの中にある「論理的に分離されたキー空間」**です。
RDBMS のデータベースとは少し概念が違い、**単なる名前付きキーのグループ(namespace)**に近いものです。
とまぁ、ようわからん説明ではありますが・・・。
概念として違うとはいうものの、「RDBMS」のデータベースと同じような扱いができるような気がします。
デフォルトで、16個(0~15)のデータベースが存在するそうで。
これは。
/usr/local/etc/redis.conf
の。
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
で定義されています。
「redis」のデータベースには次の特徴があるようです。
| 特 徴 | 内 容 | 備考 |
| 完全にキーが分離 | 同じキー名でも DB が違えば別 | |
| メモリは共有 | Redis 全体のメモリを共用 | |
| トランザクションは跨げない | DB を跨ぐ処理はできない | |
| ACL / 権限分離なし | セキュリティ分離はできない | |
ということなのですが。
「redis」の公式からは、「『DB』を分けるよりキー『prefix』を使う方が一般的」とされているそうです。
3. 操作
データベースの切り替えは。
「redisredi-cli」では。
SELECT 1
「php」では。
Redis::select(1);
と記述します(いずれも データベース 1 へ切り替え)。
データベースを削除する際、「redi-cli」で。
FLUSHALL
とやるのは、「redis」の全体のデータベースを削除しているそうで。
データベース単位で削除する場合は、データベースを切り替えたうえで。
FLUSHDB
4. 参考サイト
本ページは、「ChatGPT」軍曹を参考にさせていただきました。
|
|