redisトレーニング学習まとめ


redisがサポートするデータ構造:strings,lists,hashes,set,sorted set.次に実験をします
stringsの具体的な操作はget/set/setnx,append,strlen,getrange/setrange,incr/decrby/incrby/decrby,mget/msetで、意味は簡単で大体分かります
get/setは、データを挿入してデータを除去する(key----value対応):
redis 127.0.0.1:6379[1]> set test chen
OK
redis 127.0.0.1:6379[1]> set test2 zhou
OK
redis 127.0.0.1:6379[1]> get test
"chen"
redis 127.0.0.1:6379[1]> get test2
"zhou"
setnxは、同じkey値が存在するかどうかをデータを挿入し、存在する場合は0を返し、存在しない場合は1を返します.
redis 127.0.0.1:6379[1]> setnx test 11111
(integer) 0
redis 127.0.0.1:6379[1]> get test
"chen"
appendはもっと簡単で、普段使っている追加文字です.
redis 127.0.0.1:6379[1]> get test
"chen"
redis 127.0.0.1:6379[1]> append test @gmail.com
(integer) 14
redis 127.0.0.1:6379[1]> get test
"[email protected]"
getrange/setrangeの使い方は、簡単な文字列操作、相対位置の文字を取り出す、または設定です.ここで実験中に問題が発生し、主にsetrangeの操作に慣れていないので、以下の操作を見て、setrangeが対応する位置を等数置換していることがわかりました.5の位置は@あそこ、QQ.comは6文字でmysinaを置き換えます.com 10文字の場合、上位6文字に代わるしかありません.
redis 127.0.0.1:6379[1]> set test3 [email protected]
OK
redis 127.0.0.1:6379[1]> get test3
"[email protected]"
redis 127.0.0.1:6379[1]> setrange test3 5 mysina.com
(integer) 15
redis 127.0.0.1:6379[1]> get test3
"[email protected]"
redis 127.0.0.1:6379[1]> setrange test3 5 QQ.com
(integer) 15
redis 127.0.0.1:6379[1]> get test3
"[email protected]"
incr/decr/incrby/decrbyとは、自加自減の意味の後ろにあるincrby/decrbyがステップ長を加えていること、そしてkey値がなければ操作することもできます.
redis 127.0.0.1:6379> set age 20
OK
redis 127.0.0.1:6379> incr age
(integer) 21
redis 127.0.0.1:6379> get age
"21"
redis 127.0.0.1:6379> incrby age 5
(integer) 26
redis 127.0.0.1:6379> incrby ss 3
(integer) 3
redis 127.0.0.1:6379> incr tt 2
(error) ERR wrong number of arguments for 'incr' command
redis 127.0.0.1:6379> get tt
(nil)
mget/msetはロットの挿入取り出しです.
hashテーブルの基本操作はstringと同様にhget/hset/hsetnx,happend,hstrlen,hgetrange/hsetrange,hincr/hdecr/hincby/hdecrby,hmget/hmsetであり,前にHを付けただけである.オブジェクトデータを格納するのに特に適しています.基本的な操作は上と同じで、ここのkeyはhashの名前として使われています.操作時に取り出すhashドメインを挿入する必要があります.
redis 127.0.0.1:6379[1]> hset myhash ID 001
(integer) 1
redis 127.0.0.1:6379[1]> hset myhash name chen
(integer) 1
redis 127.0.0.1:6379[1]> hset myhash address ncut
(integer) 1
redis 127.0.0.1:6379[1]> hset myhash telephone 12332123
(integer) 1
redis 127.0.0.1:6379[1]> hget myhash id
(nil)
redis 127.0.0.1:6379[1]> hget myhash ID
"001"
redis 127.0.0.1:6379[1]> hget myhash name
"chen"
redis 127.0.0.1:6379[1]> hget myhash0000 name
(nil)
その他の操作は上記と同じようにすればよい.
redis 127.0.0.1:6379[1]> hkeys myhash
1) "ID"
2) "name"
3) "address"
4) "telephone"
redis 127.0.0.1:6379[1]> hvals myhash
1) "001"
2) "chen"
3) "ncut"
4) "12332123"
redis 127.0.0.1:6379[1]> hgetall myhash
1) "ID"
2) "001"
3) "name"
4) "chen"
5) "address"
6) "ncut"
7) "telephone"
8) "12332123"
listsチェーンテーブル構造で、主な機能はpop/pushであり、そのうちakeyはチェーンテーブルの名前として使われている.また、主に(lr)pop/()lrpushは、左(右)を右(左)に挿入して取り出すことができ、キューとしてスタックとして使用できることを決定します.もう一つの奇妙な点は,その閉塞機構,b(lr)pop,b(lr)pushにある.
redis 127.0.0.1:6379[1]> lpush mylist chen
(integer) 1
redis 127.0.0.1:6379[1]> lpush mylist chen2
(integer) 2
redis 127.0.0.1:6379[1]> lpush mylist chen3
(integer) 3
redis 127.0.0.1:6379[1]> rpush mylist chen2
(integer) 4
redis 127.0.0.1:6379[1]> rpush mylist chen3
(integer) 5
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen3"
2) "chen2"
3) "chen"
4) "chen2"
5) "chen3"
redis 127.0.0.1:6379[1]> lpop mylist
"chen3"
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen2"
2) "chen"
3) "chen2"
4) "chen3"
ここではsetとinsertの使い方です.
redis 127.0.0.1:6379[1]> linsert mylist before chen chenInsert
(integer) 5
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen2"
2) "chenInsert"
3) "chen"
4) "chen2"
5) "chen3"
redis 127.0.0.1:6379[1]> lset mylist 0 setTest
OK
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "setTest"
2) "chenInsert"
3) "chen"
4) "chen2"
5) "chen3"
ここではlremの使い方です.ここではパラメータが必要です.与えられた値が0の場合、デフォルトではすべて削除されます.
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen"
2) "chen"
3) "setTest"
4) "chenInsert"
5) "chen"
6) "chen2"
7) "chen3"
redis 127.0.0.1:6379[1]> lrem mylist chen
(error) ERR wrong number of arguments for 'lrem' command
redis 127.0.0.1:6379[1]> lrem mylist 1 chen ###           ,           
(integer) 1
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen"
2) "setTest"
3) "chenInsert"
4) "chen"
5) "chen2"
6) "chen3"
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "chen"
2) "setTest"
3) "chenInsert"
4) "chen"
5) "chen2"
6) "chen3"
redis 127.0.0.1:6379[1]> lrem mylist 0 chen
(integer) 2
redis 127.0.0.1:6379[1]> lrange mylist 0 -1
1) "setTest"
2) "chenInsert"
3) "chen2"
4) "chen3"
他の自分で実験してみましょう.ここではプレゼンテーションをしません.多すぎます.
またsetとsorted setは、上記のいくつかの非常用で複雑なものと比較して、プレゼンテーションをしません.