Redis---B局学習---redisデータ型List
29706 ワード
Redis-B局学習-redisデータ型List
一、Listは単値多Value
二、ケース count>0:ヘッダーからヘッダーへの検索を開始し、valueに等しい要素を削除します.数はcountです. count<0:countの絶対値であるvalueに等しい要素をテーブルの最後からヘッダーに検索します. count=0:valueに等しいすべての値をテーブルから削除します.
一、Listは単値多Value
二、ケース
lpush
:リストkeyのヘッダーに1つ以上の値valueを挿入し、
:LPUSHコマンドを実行した後、リストの長さ.#
redis> LPUSH languages python
(integer) 1
#
redis> LPUSH languages python
(integer) 2
redis> LRANGE languages 0 -1 #
1) "python"
2) "python"
#
redis> LPUSH mylist a b c
(integer) 3
redis> LRANGE mylist 0 -1
1) "c"
2) "b"
3) "a"
rpush
:リストkeyのテーブルの末尾(右端)に1つ以上の値valueを挿入します.戻り値はRPUSH操作後のテーブルの長さです.#
redis> RPUSH languages c
(integer) 1
#
redis> RPUSH languages c
(integer) 2
redis> LRANGE languages 0 -1 #
1) "c"
2) "c"
#
redis> RPUSH mylist a b c
(integer) 3
redis> LRANGE mylist 0 -1
1) "a"
2) "b"
3) "c"
lrange
:リストkeyで指定した区間内の要素を返し、区間はオフセット量startとstopで指定します.戻り値は、指定した区間内の要素を含むリストです.redis> RPUSH fp-language lisp
(integer) 1
redis> LRANGE fp-language 0 0
1) "lisp"
redis> RPUSH fp-language scheme
(integer) 2
redis> LRANGE fp-language 0 1
1) "lisp"
2) "scheme"
lpop
:リストkeyのヘッダ要素を削除して返します.戻り値は、リストのヘッダ要素です.keyが存在しない場合はnilを返します.redis> LLEN course
(integer) 0
redis> RPUSH course algorithm001
(integer) 1
redis> RPUSH course c++101
(integer) 2
redis> LPOP course #
"algorithm001"
rpop
:リストkeyの末尾要素を削除して返します.戻り値は、リストの末尾要素です.keyが存在しない場合はnilを返します.redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOP mylist #
"three"
redis> LRANGE mylist 0 -1 #
1) "one"
2) "two"
lindex, ( )
:リストkeyにindexと表示される要素を返します.戻り値は、リストにindexと表示される要素です.indexパラメータの値がリストの区間範囲内でない場合(out of range)、nilを返します.redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LINDEX mylist 0
"Hello"
redis> LINDEX mylist -1
"World"
redis> LINDEX mylist 3 # index mylist
(nil)
llen
:リストキーの長さを返します.戻り値はリストkeyの長さです.#
redis> LLEN job
(integer) 0
#
redis> LPUSH job "cook food"
(integer) 1
redis> LPUSH job "have lunch"
(integer) 2
redis> LLEN job
(integer) 2
lrem key N value
:パラメータcountの値に基づいて、リスト内のパラメータvalueに等しい要素を除去します.戻り値は、除去された要素の数です.存在しないkeyは空のテーブル(empty list)と見なされるため、keyが存在しない場合、LREMコマンドは常に0を返します.注意:# ,
# morning hello morning helllo morning
redis> LPUSH greet "morning"
(integer) 1
redis> LPUSH greet "hello"
(integer) 2
redis> LPUSH greet "morning"
(integer) 3
redis> LPUSH greet "hello"
(integer) 4
redis> LPUSH greet "morning"
(integer) 5
redis> LRANGE greet 0 4 #
1) "morning"
2) "hello"
3) "morning"
4) "hello"
5) "morning"
redis> LREM greet 2 morning # , morning
(integer) 2 #
redis> LLEN greet # 3
(integer) 3
redis> LRANGE greet 0 2
1) "hello"
2) "hello"
3) "morning"
redis> LREM greet -1 morning # , morning
(integer) 1
redis> LLEN greet #
(integer) 2
redis> LRANGE greet 0 1
1) "hello"
2) "hello"
redis> LREM greet 0 hello # hello
(integer) 2 # hello
redis> LLEN greet
(integer) 0
ltrim key index index, key
:1つのリストをトリム(trim)します.つまり、リストに された の のみを させ、 された でない はすべて されます. り はコマンド に した 、okを します. :
は、リストの 1の を0、リストの 2の を1で す. は、リストの の を1で し、リストの から2 の を2で します.# 1: , start stop
redis> LRANGE alpha 0 -1 # alpha 5
1) "h"
2) "e"
3) "l"
4) "l"
5) "o"
redis> LTRIM alpha 1 -1 # alpha 0
OK
redis> LRANGE alpha 0 -1 # "h"
1) "e"
2) "l"
3) "l"
4) "o"
# 2: stop
redis> LTRIM alpha 1 10086 # alpha 1 10086
OK
redis> LRANGE alpha 0 -1 # 0 "e" ,
1) "l"
2) "l"
3) "o"
# 3: start stop , start < stop
redis> LTRIM alpha 10086 123321
OK
redis> LRANGE alpha 0 -1 #
(empty list or set)
# 4: start stop , start > stop
redis> RPUSH new-alpha "h" "e" "l" "l" "o" #
(integer) 5
redis> LRANGE new-alpha 0 -1
1) "h"
2) "e"
3) "l"
4) "l"
5) "o"
redis> LTRIM new-alpha 123321 10086 # LTRIM
OK
redis> LRANGE new-alpha 0 -1 #
(empty list or set)
rpoplpush
:RPOPLPUSHを1つの に、 の2つの を します. リストsourceの の ( )をポップアップし、クライアントに します. sourceポップアップ をdestinationリストのヘッダ としてリストdestinationに します.# source destination
redis> LRANGE alpha 0 -1 #
1) "a"
2) "b"
3) "c"
4) "d"
redis> RPOPLPUSH alpha reciver # RPOPLPUSH
"d"
redis> LRANGE alpha 0 -1
1) "a"
2) "b"
3) "c"
redis> LRANGE reciver 0 -1
1) "d"
redis> RPOPLPUSH alpha reciver # , RPOP LPUSH
"c"
redis> LRANGE alpha 0 -1
1) "a"
2) "b"
redis> LRANGE reciver 0 -1
1) "c"
2) "d"
# source destination
redis> LRANGE number 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
redis> RPOPLPUSH number number
"4"
redis> LRANGE number 0 -1 # 4
1) "4"
2) "1"
3) "2"
4) "3"
redis> RPOPLPUSH number number
"3"
redis> LRANGE number 0 -1 # 3
1) "3"
2) "4"
3) "1"
4) "2"
lset key index value
:リストkeyの にindexと される の をvalueに します. り は、 がOKを に した 、エラーメッセージを します.# (key ) LSET
redis> EXISTS list
(integer) 0
redis> LSET list 0 item
(error) ERR no such key
# LSET
redis> LPUSH job "cook food"
(integer) 1
redis> LRANGE job 0 0
1) "cook food"
redis> LSET job 0 "play game"
OK
redis> LRANGE job 0 0
1) "play game"
# index
redis> LLEN list # 1
(integer) 1
redis> LSET list 3 'out of range'
(error) ERR index out of range
LINSERT key BEFORE|AFTER pivot value
: pivotの に valueをリストkeyに します. り は、コマンドが に された 、 が した のリストの さを します.pivotが つからない は、-1を します.keyが しないか、 のリストの は0を します.redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSH mylist "World"
(integer) 2
redis> LINSERT mylist BEFORE "World" "There"
(integer) 3
redis> LRANGE mylist 0 -1
1) "Hello"
2) "There"
3) "World"
# , pivot
redis> LINSERT mylist BEFORE "go" "let's"
(integer) -1 #
# LINSERT
redis> EXISTS fake_list
(integer) 0
redis> LINSERT fake_list BEFORE "nono" "gogogog"
(integer) 0