Redis 指定した位置から値を更新する
Redisで、指定した位置から値を更新する手順を記述してます。「setrange」を使用します。位置が範囲を超えている0バイトで埋められます。ここでは、実際に実行した結果を掲載してます。
環境
- OS CentOS Stream release 9
- Redis 7.0.5
手順
指定した位置から値を更新するには、「setrange」を使用します。
開始位置は「0」からとなります。
setrange key名 位置 変更する値
実際に、更新してみます。
127.0.0.1:6379> set key1 "abcde"
OK
127.0.0.1:6379> setrange key1 2 "edc"
(integer) 5
127.0.0.1:6379> get key1
"abedc"
更新されていることが確認できます。
127.0.0.1:6379> mget key1 key2 key3
1) "v1"
2) (nil)
3) "v3"
文字数が範囲を超えていても、全て更新されます。
127.0.0.1:6379> set key1 "abcde"
OK
127.0.0.1:6379> setrange key1 0 "aabbccddee"
(integer) 10
127.0.0.1:6379> get key1
"aabbccddee"
位置を超える
指定した位置が存在しない場合は、最終行に追加されますが、範囲を超えると「0」バイトで埋められます。
127.0.0.1:6379> set key1 "abcde"
OK
127.0.0.1:6379> setrange key1 5 "fg"
(integer) 7
127.0.0.1:6379> get key1
"abcdefg"
指定位置が、文字数を超えると「0」バイトで埋められます。
127.0.0.1:6379> set key1 "abcde"
OK
127.0.0.1:6379> setrange key1 6 "fg"
(integer) 8
127.0.0.1:6379> get key1
"abcde\x00fg"
127.0.0.1:6379> set key1 "abcde"
OK
127.0.0.1:6379> setrange key1 7 "fg"
(integer) 9
127.0.0.1:6379> get key1
"abcde\x00\x00fg"
-
前の記事
MariaDB 位置を指定して配列に値を追加する 2024.03.06
-
次の記事
kotlin Char型をInt型に変換する 2024.03.07
コメントを書く