0
1

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.

インメモリ キーバリュー型 NoSQL「Redis」コマンドの使い方

Last updated at Posted at 2024-01-06

redis-1.png

Redisはキーバリュー型のインメモリデータベースです。

1. Redisの導入(前準備)

※Redis公式サイトよりインストール方法を参照。

2. Redisクライアントの起動

  • redis-cliで、Redisクライアント(CUI)を起動する。
$ redis-cli
> ping
PONG

3. Redisコマンド

バリューの種類によって、コマンドが異なる。

  • ストリング型(string)
  • リスト型(list)
  • ハッシュ型(hash)
  • セット型(set)
  • ソート済みセット型(zset)
■ ストリング型(string)

キーとバリューが1対1の関係で管理されるデータ型。

  • set key value: 指定キーに対するバリュー(値)を登録
  • get key: 指定キーに対するバリュー(値)を取得
> set x 100
OK

> get x
"100"
■ リスト型(list)

1つのキーに対してリスト(複数の値を持つ)により管理されるデータ型。

  • lpush key value:指定キーのリストの先頭(左)から要素を追加
  • rpush key value:指定キーのリストの末尾(右)から要素を追加
  • lrange key start stop:指定した範囲(start ~ stop)のリスト要素を取得
    ※stopに-1を指定すると最後から1番目という意味になる
  • lpop key:指定キーのリスト(値)の先頭(左)から要素をpop(取得+削除)
  • rpop key:指定キーのリスト(値)の末尾(右)から要素をpop(取得+削除)
  • ltrim key start stop:指定した範囲(start ~ stop)のリスト要素以外を削除
> lpush y 1 2 3
(integer) 3
> rpush y 4 5
(integer) 5
> lrange 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
> lpop y
"3"
> rpop y
"5"
> lrange y 0 -1
1) "2"
2) "1"
3) "4"
> ltrim y 0 1
OK
> lrange y 0 -1
1) "2"
2) "1"
■ ハッシュ型(hash)

親キー、子キー(フィールド)、バリュー(値)により管理されるデータ型。

  • hmset key field value:指定キー+指定フィールドのバリュー(値)を登録
  • hmget key field:指定キー+指定フィールドから、バリュー(値)を取得
  • hincrby key field number:指定キー+指定フィールドのバリュー(値)を加算/減算
> hmset bike1 model 'scooter' brand 'vespa' type 'primavera' stocks 10
OK
> hmget bike1 type stocks
1) "primavera"
2) "10"
> hmget bike1 brand
1) "vespa"
> hgetall bike1
1) "model"
2) "scooter"
3) "brand"
4) "vespa"
5) "type"
6) "primavera"
7) "stocks"
8) "10"
■ セット型(set)

セットはメンバーのコレクションで管理されるデータ型。

  • sadd key member:指定セット(キー)に新しいメンバーを追加
  • scard key:指定セット(キー)のメンバーの登録数を取得
  • smembers key:指定セット(キー)の全てのメンバーを取得
  • sinter key1 key2 ...:2つ以上のセットを共通に持つメンバーのセット(積)を取得
  • srem key member:指定キーのセットから指定するメンバーを削除
> sadd group1 user1 user2 user3
(integer) 3
> sadd group2 user1 user3
(integer) 2
> scard group1
(integer) 3
> smembers group1
1) "user3"
2) "user2"
3) "user1"
> sinter group1 group2
1) "user3"
2) "user1"
> srem group2 user3
(integer) 1
> smembers group2
1) "user1"
■ ソート済みセット型(zset)

ソート済みセットはメンバーとスコアのコレクションで管理されるデータ型(並びはスコア順)。
複数のメンバーが同じスコアを持つ場合、メンバー名の辞書順に並べられる。

  • zadd key score member:指定のソート済みセット(キー)にスコアとメンバーを追加
  • zrange key start stop:指定のソート済みセット(キー)からメンバーを取得
> zadd sgroup1 100 user1
(integer) 1
> zadd sgroup1 180 user2
(integer) 1
> zadd sgroup1 150 user3
(integer) 1
>zrange sgroup1 0 -1

■ 共通
  • keys *:登録済みのキーの一覧を取得
  • exists key:キーが登録済みかを確認(あれば1を返す)
  • type key:バリュー(値)の種類を確認(string list set zset hash)
  • del key:指定のキーを削除
  • info:Redisサーバーの情報を取得
> keys *
1) "sgroup1"
2) "group2"
3) "group1"
4) "bike1"
5) "y"
6) "x"

> type x
string

> type y
list

> type group1
hash

> type group1
set

> type sgroup1
zset

> del x
(integer) 1

> info
#Server, #Clients, #Memory, #Persistence, #Stats, #Replication, #CPU, #Cluster, #Keyspaceが表示される)

参考:Redis公式サイト
https://redis.io/

以上

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?