Redis-cli共通コマンドとインスタンス
62806 ワード
1.文字列関連アクション
1.設定値(set key value)
# set key value [EX seconds] [PX milliseconds] [NX|XX]
127.0.0.1:6379> set name test1
OK
2.取得値(get key)、削除(del key)
# get key
127.0.0.1:6379> get name
"test1"
3.存在しない場合に設定します.そうでない場合は0(setnx key value)を返します.
# setnx key value
127.0.0.1:6379> setnx name test2
(integer) 0
4.有効期間の設定(setex key seconds value)
# setex key seconds value
127.0.0.1:6379> setex test1 10 test1
OK
5.文字列置換(setrange key offset value)
# setrange key offset value
127.0.0.1:6379> set email 123456789@qq.com
OK
127.0.0.1:6379> setrange email 10 ww
(integer) 16
127.0.0.1:6379> get email
"[email protected]"
6.一度に複数の値を設定する(mset key value[key value...])
# mset key value [key value ...]
127.0.0.1:6379> mset test1 test1 test2 test2 test3 test3
OK
# mget key [key...]
127.0.0.1:6379> mget test1 test2 test3
1) "test1"
2) "test2"
3) "test3"
7.取得後の設定(getset key value)
# getset key value
127.0.0.1:6379> getset test1 test@1
"test1"
127.0.0.1:6379> get test1
"test@1"
8.ある値を増減する(incr key,decr key)
127.0.0.1:6379> set index 1
OK
127.0.0.1:6379> incr index
(integer) 2
127.0.0.1:6379> decr index
(integer) 1
9.長さの増加または減少を指定します(incrby key increment,decrby key increment)
127.0.0.1:6379> incrby index 3
(integer) 4
127.0.0.1:6379> decrby index 2
(integer) 2
10.文字列追加(append key value)
127.0.0.1:6379> get name
"test1"
# append key value
127.0.0.1:6379> append name test
(integer) 9
127.0.0.1:6379> get name
"test1test"
11.文字列長の取得(strlen key)
127.0.0.1:6379> get name
"test1test"
127.0.0.1:6379> strlen name
(integer) 9
2.Hashタイプ
1.設定または値(hset key field value,hget key field)
# hset key field value
127.0.0.1:6379> hset user id 1
(integer) 1
127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hset user age 18
(integer) 1
# hget key field
# , hash field
127.0.0.1:6379> hget user
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget user name
"zhangsan"
127.0.0.1:6379> hget user id
"1"
127.0.0.1:6379> hget user age
"18"
2.一括設定または取得(hmset,hmget)
# hmset key field value [field value ...]
127.0.0.1:6379> hmset user1 id 10 name lisi age 18
OK
# field
127.0.0.1:6379> hmget user1
(error) ERR wrong number of arguments for 'hmget' command
# hmget key field [field ...]
127.0.0.1:6379> hmget user1 id name age
1) "10"
2) "lisi"
3) "18"
3.存在しない場合のみ設定(hsetnx key field value)
127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user id, 0
127.0.0.1:6379> hsetnx user id 2
(integer) 0
127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user sex, 1
127.0.0.1:6379> hsetnx user sex 1
(integer) 1
127.0.0.1:6379> hmget user id age name sex
1) "1"
2) "18"
3) "zhangsan"
4) "1"
4.hashにkeyが存在するか否かを判断する(hexists key field)
# 1, 0
127.0.0.1:6379> hexists user id
(integer) 1
127.0.0.1:6379> hexists user score
(integer) 0
5.集合増分(hincrby)
# hincrby key field increment
127.0.0.1:6379> hget user id
"2"
127.0.0.1:6379> hincrby user id 1
(integer) 3
127.0.0.1:6379> hget user id
"3"
6.集合field個数(hlen),(hkeys)はhash中のすべてのfieldを返す
127.0.0.1:6379> hlen user
(integer) 4
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"
7.hash指定field(hdel)の削除
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"
# hdel key field
127.0.0.1:6379> hdel user sex
(integer) 1
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
8.hashのすべての値を取得する(hvals key)
127.0.0.1:6379> hvals user
1) "3"
2) "zhangsan"
3) "18"
9.hash中のkeyとvalue(hgetall key)を取得する
127.0.0.1:6379> hgetall user
1) "id"
2) "3"
3) "name"
4) "zhangsan"
5) "age"
6) "18"
3.Listタイプ操作
リストを用いてキューまたはスタックを実現することができ、横配列と理解することができ、データを左端からリストの下付き文字を左から右へ0,1,2,3...;右から左へ-1,-2,-3,-4...
1.lpush左端追加、スタック先進後出に相当
# lpush list
# lpush key value [value...]
127.0.0.1:6379> lpush list1 hello world
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "hello"
2.rpush右端追加、キューの最後に要素を追加することに相当
# rpush List
# rpush key value [value...]
127.0.0.1:6379> rpush list2 hello world
(integer) 2
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"
3.要素の挿入(linsert key before|after pivot value)
# linsert key before|after pivot value
127.0.0.1:6379> linsert list1 before 'hello' test
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"
4.下付き要素の置換を指定する(lset key index value)
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"
127.0.0.1:6379> lset list1 1 test1
OK
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test1"
3) "hello"
5.要素の削除(lrem key count value)
count>0 count個を左から右へ削除<0 count個を右から左へ削除=0すべての一致を削除
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test2"
3) "world"
127.0.0.1:6379> lrem list1 1 test2
(integer) 1
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "world"
6.指定範囲内のデータを保持する(rtrim key start stop)
127.0.0.1:6379> rpush lists i love java hello world
(integer) 5
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> ltrim lists 0 3
OK
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
7.lpop左から要素をポップアップ
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"
8.rpop右端から要素をポップアップ
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"
127.0.0.1:6379> rpop lists
"world"
9 rpoplpush右端ポップアップ左端追加
127.0.0.1:6379> lrange lists 0 -1
1) "love"
2) "java"
3) "hello"
# rpoplpush source destination
127.0.0.1:6379> rpoplpush lists lists
"hello"
127.0.0.1:6379> lrange lists 0 -1
1) "hello"
2) "love"
3) "java"
10.lindexは、リスト内のインデックスがindexの要素を返す
127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"
127.0.0.1:6379> lindex lists 0
"java"
127.0.0.1:6379> lindex lists -1
"i"
127.0.0.1:6379> lindex lists -2
"love"
127.0.0.1:6379> lindex lists -3
"java"
11.llenはListの要素数を返す
127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"
127.0.0.1:6379> llen lists
(integer) 3
4.SetとZSetのセット
set無秩序、Zset秩序;要素は繰り返すことはできません.集合操作の交差、並列、差分セットを行うことができます.
1.要素の追加(sadd key member[member...])
127.0.0.1:6379> sadd set1 i love java
(integer) 3
127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"
2.要素の削除(srem key member[member...])
127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"
127.0.0.1:6379> srem set1 i love
(integer) 2
127.0.0.1:6379> smembers set1
1) "java"
3.spopランダムポップアップ要素(spop key)
127.0.0.1:6379> SMEMBERS set1
1) "love"
2) "c++"
3) "i"
4) "java"
127.0.0.1:6379> spop set1
"love"
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
4.異なる要素を集合し、前の要素を標準とする(sdiff key key...)
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sdiff set1 set2
1) "java"
127.0.0.1:6379> sdiff set2 set1
1) "love"
2) "python"
5.sdiffstoreは、返された異なる要素を新しいセットに格納する
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sdiffstore set3 set2 set1
(integer) 2
127.0.0.1:6379> smembers set3
1) "love"
2) "python"
6.集合交差を取る(sinter key[key...])
sinterstoreは交差を取り、新しいsetに存在します.
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sinter set1 set2
1) "c++"
2) "i"
7.集合並列化(sunion key[key...])
sunionstoreは、新しいsetに並べて格納されます.
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sunion set1 set2
1) "love"
2) "c++"
3) "i"
4) "python"
5) "java"
8.移動集合内の要素(smove source destination member)
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> smove set1 set2 java
(integer) 1
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"
9.コレクション内の要素数の表示(scard key)
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
127.0.0.1:6379> scard set1
(integer) 2
10.集合に要素が含まれているかどうか(sismember key member)
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"
127.0.0.1:6379> sismember set2 i
(integer) 1
127.0.0.1:6379> sismember set2 c
(integer) 0
11.setの要素をランダムに返す(srandmember key count)
127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"
127.0.0.1:6379> srandmember set2 2
1) "i"
2) "java"
127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"
12.ZSet追加要素
ZSetに追加する要素:zadd key[NX|XX][CH][INCR]score member[score member...]
zsetの要素を表示:zrange key start stop[WITHSCORES]
127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 c++ 5 python
(integer) 5
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrange zset 0 -1 withscores
(empty list or set)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"
7) "c++"
8) "4"
9) "python"
10) "5"
13.Zset削除要素(zrem key member[member...])
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrem zset1 i
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "love"
2) "java"
3) "c++"
4) "python"
14.自動増減(zincrby key increment member)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "8"
127.0.0.1:6379> zincrby zset1 10 love
"18"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "18"
127.0.0.1:6379> zincrby zset1 -5 love
"13"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "13"
15.スコア区間範囲による検索(zrangebyscore)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "age"
8) "10"
9) "love"
10) "13"
127.0.0.1:6379> zrangebyscore zset1 5 20
1) "python"
2) "age"
3) "love"
16.インデックス番号範囲に従って削除(zremrangebyrank)
127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 python 5 c++ 6 c
(integer) 6
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zremrangebyrank zset1 0 1
(integer) 2
127.0.0.1:6379> zrange zset1 0 -1
1) "java"
2) "python"
3) "c++"
4) "c"
17.スコア範囲による削除(zremrangebyscore)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "python"
4) "4"
5) "c++"
6) "5"
7) "c"
8) "6"
127.0.0.1:6379> zremrangebyscore zset1 3 5
(integer) 3
127.0.0.1:6379> zrange zset1 0 -1
1) "c"
18.Zset要素インデックス番号(zrankkey member)を返す
zrevrankkey memberインデックスを逆順序で取得
127.0.0.1:6379> zrange zset2 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zrank zset2 python
(integer) 3
19.スコア範囲に基づいて検索(zrangebyscore)
127.0.0.1:6379> zrange zset2 0 -1 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"
7) "python"
8) "4"
9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zrangebyscore zset2 1 3
1) "i"
2) "love"
3) "java"
127.0.0.1:6379> zrangebyscore zset2 1 3 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"
20.Zset要素個数(zcard key)
127.0.0.1:6379> zrange zset2 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zcard zset2
(integer) 6
21.Zsetスコア指定範囲要素個数(zcount key min)
127.0.0.1:6379> zrange zset2 0 -1 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"
7) "python"
8) "4"
9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zcount zset2 1 3
(integer) 3
22.インデックス範囲に基づいて削除(zremrangebyrankkey start stop)
127.0.0.1:6379> zrange zset2 0 -1 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"
7) "python"
8) "4"
9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zremrangebyrank zset2 0 2
(integer) 3
127.0.0.1:6379> zrange zset2 0 -1 withscores
1) "python"
2) "4"
3) "c++"
4) "5"
5) "c"
6) "6"