Redis 一度に複数keyに値を設定する

Redis 一度に複数keyに値を設定する

Redisで、一度に複数keyに値を設定する手順を記述してます。「mset」または「smetnx」にキーと値を設定していくことで可能です。

環境

  • OS CentOS Stream release 9
  • Redis 7.0.5

手順

一度に複数keyに値を設定するには、「mset」か「smetnx」を使用します。
※「msetnx」を使用すると、既にあるkeyに値がある場合は、値を設定できません。

mset キー名 値 キー名 値 キー名 値 ...

or

msetnx キー名 値 キー名 値 キー名 値 ..

実際に、keyに値を設定してみます。

127.0.0.1:6379> mset key1 v1 key2 v2 key3 v3
OK

127.0.0.1:6379> get key1
"v1"

127.0.0.1:6379> get key2
"v2"

127.0.0.1:6379> get key3
"v3"

再度keyを設定すると更新されます。

127.0.0.1:6379> mset key1 v11 key2 v22 key3 v33
OK

127.0.0.1:6379> get key1
"v11"

127.0.0.1:6379> get key2
"v22"

127.0.0.1:6379> get key3
"v33"

msetnx

「msetnx」を使用すると、既にkeyが存在する場合は更新はされません。他のkeyにも値が設定されません。

127.0.0.1:6379> msetnx key1 v111 key4 v4 key5 v5
(integer) 0

127.0.0.1:6379> get key1
"v11"

127.0.0.1:6379> get key4
(nil)

127.0.0.1:6379> get key5
(nil)

値が存在しない場合は、設定されます。

127.0.0.1:6379> msetnx key4 v4 key5 v5
(integer) 1

127.0.0.1:6379> get key4
"v4"

127.0.0.1:6379> get key5
"v5"