Redis データ型(String)

スポンサーリンク

RedisにはStrings, Lists, Sets, Hashes, Sorted Setsなどのデータ型があります。このページでは最も基本的なString型の操作を説明します。命名から判断すると、String型には文字列しか格納できないように見えますが、文字列以外にバイナリや数値も格納できます。数値を格納した場合は、加算や減算の操作も可能です。

前提

公式ドキュメント

参考になる公式ドキュメントを以下に示します。

動作確認済環境

  • Rocky Linux 8.6
  • Redis 5.0.3

CRUD操作

単一のSETとGET

以下のようにSETコマンドを発行すると、値を設定する事ができます。

127.0.0.1:6379> SET key01 value01
OK
127.0.0.1:6379> SET key02 value02
OK
127.0.0.1:6379> 

GETコマンドで値の取得が可能です。

127.0.0.1:6379> GET key01
"value01"
127.0.0.1:6379> GET key02
"value02"
127.0.0.1:6379> 

DELコマンドでキーの削除が可能です。

127.0.0.1:6379> DEL key01
(integer) 1
127.0.0.1:6379> GET key01
(nil)
127.0.0.1:6379> 

複数のSETとGET

MSETやMGETを使用すると、複数のキーを同時に設定できます。MSETの使用例は以下の通りです。

127.0.0.1:6379> MSET key03 value03 key04 value04
OK
127.0.0.1:6379> 

MGETの使用性は以下の通りです。

127.0.0.1:6379> MGET key03 key04
1) "value03"
2) "value04"
127.0.0.1:6379> 

TTL

TTLの設定

RedisのkeyはTTLを設定し、一定時間後に自動削除する事もできます。例えば、key04に対してTTL(秒単位指定)を設定するには、以下のようにEXPIREコマンドを使用します。

127.0.0.1:6379> EXPIRE key04 30
(integer) 1
127.0.0.1:6379>

TTLの確認

期限切れになる前は以下のようにGETコマンドで値の取得が可能です。また、TTLコマンドで残り時間(秒単位表示)を確認する事もできます。

127.0.0.1:6379> GET key04
"value04"
127.0.0.1:6379> TTL key04
(integer) 24
127.0.0.1:6379> 

期限切れになると、以下のようにGETコマンドで値の取得ができなくなります。TTLコマンドは-2を返します。

127.0.0.1:6379> GET key04
(nil)
127.0.0.1:6379> TTL key04
(integer) -2
127.0.0.1:6379> 

TTLコマンドの戻り値を整理すると以下のようになります。

戻り値 意味
正の数 or 0 期限切れになるまでの時間(秒)
-1 TTLが設定されていない
-2 期限切れの状態

SETとTTLの同時設定

以下のようにSETコマンドにEXを付与すると、SETと同時にTTLを設定する事ができます。

127.0.0.1:6379> SET key05 value05 EX 30
OK
127.0.0.1:6379> 

算術操作

加算

INCRやINCRBYコマンドを使用すると、値の加算ができます。

127.0.0.1:6379> SET counter 100
OK
127.0.0.1:6379> INCR counter
(integer) 101
127.0.0.1:6379> INCRBY counter 5
(integer) 106
127.0.0.1:6379> 

減算

DECRやDECRBYコマンドを使用すると、値の加算ができます。

127.0.0.1:6379> SET counter 100
OK
127.0.0.1:6379> DECR counter
(integer) 99
127.0.0.1:6379> DECRBY counter 10
(integer) 89
127.0.0.1:6379> 

小数

INCRBYFLOATコマンドを使用すると、小数の操作ができます。

127.0.0.1:6379> SET counter 10
OK
127.0.0.1:6379> INCRBYFLOAT counter 0.1
"10.1"
127.0.0.1:6379> INCRBYFLOAT counter -0.3
"9.8"
127.0.0.1:6379> 
タイトルとURLをコピーしました