Redis GETSETコマンドの使い方 – キーに新しい文字列値を設定し、古い値を取得する方法
このチュートリアルでは、RedisのGETSETコマンドを使って、指定したキーに新しい文字列値を設定すると同時に、古い文字列値を取得する方法を解説します。
GETSETコマンドとは
GETSETコマンドは、指定したキーに新しい文字列値を設定し、そのキーに以前保存されていた古い文字列値を返すコマンドです。このコマンドは「値の読み取りと書き込みをアトミック(不可分)に実行したい場合」などに便利で、カウンターのリセットや状態の入れ替え処理などによく使われます。
動作のポイントは以下の通りです。
- キーが存在しない場合は
(nil)を返します - キーは存在するが、保存されている値が文字列型ではない場合はエラーを返します
構文
redis host:port> GETSET <keyname> <value>
戻り値
(string) キーに保存されていた古い文字列値を返します。 (nil) キーが存在しない場合に返します。 エラー キーは存在するが、値が文字列型ではない場合に返します。
使用例
以下は、GETSETコマンドを実行した際の実際の出力例です。まず SET コマンドでキーに値を設定し、その後 GETSET コマンドで新しい値を設定すると、古い値が返されていることが確認できます。
# キーに初期値を設定 redis host:port> SET mykey "old-value" OK # 新しい値を設定し、古い値を取得 redis host:port> GETSET mykey "new-value" "old-value" # 存在しないキーに対して実行 redis host:port> GETSET newkey "value" (nil)
参考資料
- Redis公式ドキュメント:GETSETコマンド
以上が、Redisデータストア内のキーに新しい文字列値を設定しつつ、古い文字列値を取得する方法の解説でした。この記事が役に立ったと思われた方は、ぜひコメント欄でご意見をお聞かせください。また、他の方にもシェアしていただけると嬉しいです。
-
Redis GEOHASHコマンドの使い方 – 地理空間データのメンバーからジオハッシュ文字列を取得する方法
このチュートリアルでは、Redisに保存された地理空間値(ジオスペーシャル値)に含まれる1つまたは複数のメンバー(要素)のGeohash文字列を取得する方法を解説します。この目的には、RedisのGEOHASHコマンドを使用します。 GEOHASHコマンドとは GEOHASHコマンドは、キーに保存された地理空間値の中から指定された1つ以上のメンバーに対して、有効なGeohash文字列を返すためのコマンドです。地理空間値はソート済みセット(sorted set)として表現され、GEOADDコマンドを使って登録されます。 Redisは地理空間要素の位置情報(経度・緯度)を、Geohash技術の変種
-
Redisでキーに文字列値を設定する方法を徹底解説 – SET / SETNX / SETEX / PSETEX コマンドの使い方
このチュートリアルでは、Redisのデータストア上で指定したキーに文字列値を設定する方法について、SET、SETNX、SETEX、PSETEX の4つのコマンドを使って詳しく解説します。それぞれのコマンドの動作の違いや使い分けのポイントもあわせて紹介するので、Redisの文字列操作をマスターしたい方はぜひ参考にしてください。 SETコマンドとは SETコマンドは、指定したキーに文字列値を設定するための最も基本的なコマンドです。キーがすでに存在する場合は、その型に関係なく値が上書きされます。また、キーに設定されていた以前の有効期限(TTL)も削除される点に注意が必要です。 SETコマンドのオプシ