Redis のバリューに使えるデータ構造の全体像
$ SET key value$ GET key
SET key valueキーに値を格納するGET keyキーの値を取得するDEL key [key ...]キーを削除するEXISTS keyキーが存在するか確認する(存在数を返す)$ INCR key$ INCRBY key increment
INCR key値を 1 増やすDECR key値を 1 減らすINCRBY key increment値を指定した数だけ増やす$ MSET key value [key value ...]$ MGET key [key ...]
MSET複数のキーに値を一括設定するMGET複数のキーの値を一括取得する$ EXPIRE key seconds$ TTL key
EXPIRE key secondsキーの有効期限を秒単位で設定するTTL key残り有効期限を秒単位で返す(-1: 期限なし、-2: キーなし)PTTL key残り有効期限をミリ秒単位で返す$ HSET key field value [field value ...]$ HGETALL key
HSETフィールドに値を設定するHGETフィールドの値を取得するHGETALLすべてのフィールドと値を取得するHDELフィールドを削除する$ HMGET key field [field ...]$ HINCRBY key field increment
HMGET複数フィールドの値を一括取得するHINCRBYフィールドの値を指定した数だけ増やすage だけを更新したい場合の手順の違い
追加と取り出しの方向の組み合わせで動作が変わる
$ RPUSH key element [element ...]$ LPOP key
LPUSH / RPUSH先頭 / 末尾に要素を追加するLPOP / RPOP先頭 / 末尾の要素を取り出す(削除される)$ LRANGE key start stopLRANGE key start stop指定範囲の要素を取得する(削除しない)LLEN keyリストの要素数を返すLINDEX key index指定位置の要素を取得する$ RPUSH tasks "task1" "task2" "task3"$ LPOP tasks
$ SADD key member [member ...]$ SMEMBERS key
SADD要素を追加するSMEMBERSすべての要素を取得するSISMEMBER要素が含まれるか確認する(1: あり、0: なし)SREM要素を削除する$ SINTER key [key ...]SUNION和集合(いずれかに含まれる要素)SINTER積集合(すべてに共通する要素)SDIFF差集合(最初の集合にだけ含まれる要素)SUNION・SINTER・SDIFF が取り出す領域
$ SADD tag:redis "user1" "user2" "user3"$ SINTER tag:redis tag:nosql
$ ZADD key score member [score member ...]$ ZRANGE key start stop [WITHSCORES]
ZADDスコア付きで要素を追加するZRANGEスコア昇順で範囲取得するZRANK要素の順位を返す(0 始まり、昇順)ZSCORE要素のスコアを返す$ ZADD leaderboard 100 "Alice" 250 "Bob"$ ZRANGE leaderboard 0 -1 REV WITHSCORES