56
50

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 5 years have passed since last update.

RedisのCRUD

Last updated at Posted at 2014-04-19

バージョン確認

Redisサーバーの起動

redis-server --version
redis-server -v
redis-cli --version
redis-cli -v

サーバの起動

Redisサーバーの起動

redis-server

強制終了(※ データが保存されないことがある)

Ctrl + C

クライアントからサーバーに接続

別のターミナルでRedisサーバーに接続

redis-cli

クライアントの終了

exit

クライアントからサーバーの終了(※ データが保存される)

shutdown

動作の確認

redis 127.0.0.1:6379> set key val
OK
redis 127.0.0.1:6379> get key
"val"

データベースの選択

データベースは番号で管理され、名前をつけることはできません。

デフォルトでは0番のデータベースに接続されていますが、以下のように切り替えることができます。

select 1
select 2

とりあえず0に合わせておきましょう。

select 0

データの保存

Redisでは自動的にディスクに保存されますが、明示的にディスクに保存することができます。

bgsave

保存先は、Resisサーバーを起動したディレクトリに、「dump.rdb」のファイル名で保存されています。

Redisを起動するときは、同じディレクトリで起動する必要があります。

Strig型の書き込み

データの書き込み

set key value

まとめて書き込み

mset key value key value ...

データの取得

get key

まとめてデータの取得

mget key key key ...

「name」というキーに、「nakano」という値を格納します。

set name nakano

「name」キーを取得します。

get name

まとめて「email」キーと「score」キーに値を格納します。

mset email hoge@foo.com score 120

キーに格納された値をまとめて取得します。

mget name email score

数値を増減する

以下のコマンドでStringに数値が格納された場合に値を増減させることができます。

incr / incrby 増加幅
decr / decrby 減少幅

数値を1繰り上げます。

incr score

数値を取得します。

get score

数値を10減少させます。

decrby score 10

数値を取得します。

get score

KEYの操作

全キー検索

keys *

パターン検索

keys *m*

キーの存在確認

exists score

exists age

キーの名前を変更

set age 14
rename age nenrei
keys *

キーの削除

del nenrei
keys *
set age 14

キーの有効期限(5秒)

expire age 5
get age

ランダムにキーを返す

randomkey

List型の書き込み

左端に追加 lpush
右端に追加 rpush
左端を削除 lpop
右端を削除 rpop

要素を追加

rpush mycolor pink
rpush mycolor green
rpush mycolor red
rpush mycolor yellow
rpush mycolor blue
rpush mycolor purple

0番目から5番目まで取得

lrange mycolor 0 5

0番目から、最後から1番目まで取得

lrange mycolor 0 -1

右端を削除

rpop mycolor
lrange mycolor 0 -1

左端を削除

lpop mycolor
lrange mycolor 0 -1

2番目の要素を取得

lindex mycolor 2

要素の数を取得

llen mycolor

要素を0番目から2番目以外を削除

ltrim mycolor 0 2
lrange mycolor 0 -1

Set型の書き込み

追加 sadd
削除 srem
一覧 smembers
和集合 sunion
積集合 sinter
差集合 sdiff

要素の追加

sadd myset1 a
sadd myset1 b
sadd myset1 c

要素の一覧

smembers myset1

後から要素を追加

sadd myset1 d

要素の一覧(順不同で表示される)

smembers myset1

要素の削除

srem myset1 d
smembers myset1

別のSet型データを作成

sadd myset2 b
sadd myset2 c
sadd myset2 d
sadd myset2 e
smembers myset1
smembers myset2

和集合

sunion myset1 myset2

積集合

sinter myset1 myset2

差集合

sdiff myset1 myset2

和集合から新しいデータを作成

sunionstore myunion myset1 myset2
smembers myunion

Sorted Set型の書き込み

追加 zadd
削除 zrem
一覧 zrange
ランク zrank

要素を追加

zadd hs 22 nakano
zadd hs 50 tanaka
zadd hs 80 sato
zadd hs 21 suzuki

低い方から一覧を取得

zrange hs 0 -1

高い方から一覧を取得

zrevrange hs 0 -1

低い方から順位を取得

zrank hs nakano

高い方から順位を取得

zrevrank hs nakano

Hash型の書き込み

hset 追加
hmset 複数追加
hget 取得
hmget 複数取得
hlen 要素数を取得
hkeys キーをすべて取得
hvals 値をすべて取得
hgetall キー、値をすべて取得

値をセット

hset user name nakano

値を複数セット

hmset user email hoge@foo.com score 120

値を取得

hget user email

値を複数取得

hmget user name email score

要素数を取得

hlen user

キーをすべて取得

hkeys user

値をすべて取得

hvals user

キー、値をすべて取得

hgetall user

sort

List型のソート

String型を少ない順にソート

lpush myscore 22
lpush myscore 50
lpush myscore 80
lpush myscore 21

データ型の確認

type myscore
lrange myscore 0 -1
sort myscore

多い順にソート

sort myscore desc

0番目から3つ分、多い順にソート

sort myscore desc limit 0 3

アルファベット順のソート

keys *
lrange mycolor 0 -1
sort mycolor alpha
sort mycolor slpha desc

Set型のソート

smembers myset1
sort myset1 alpha

multi / exec

RDBのトランザクションに近いですが、処理の途中でサーバーがダウンした場合は途中の処理が実行されることがあります。

multi
処理
処理
処理
exec(実行)/discard(キャンセル)
multi
incr counter
incr visitor
exec
56
50
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
56
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?