Redis(五):List集合データ型の詳細

8903 ワード

Redisリストは単純な文字列リストで、挿入順に並べ替えられています.リストのヘッダー(左)または末尾(右)に要素を追加できます.
1つのリストには、最大232~1個の要素(4294967295、各リストは40億個を超える要素)を含めることができます.
例:
redis 127.0.0.1:6379> LPUSH runoobkey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH runoobkey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH runoobkey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE runoobkey 0 10

1) "mysql"
2) "mongodb"
3) "redis"

Redisではリストをスタック、キュー、ブロックキューにすることができます!
1、List常用コマンド
1.1、LPUSH、LRANGE、RPUSH
127.0.0.1:6379> LPUSH list v1	//                ( )
(integer) 1
127.0.0.1:6379> LPUSH list v2
(integer) 2
127.0.0.1:6379> LPUSH list v3
(integer) 3
127.0.0.1:6379> RPUSH list v4r  //                ( )
(integer) 4
127.0.0.1:6379> LRANGE list 0 -1  //      list  
1) "v3"
2) "v2"
3) "v1"
4) "v4r"//         :v3 v2 v1 v4r
127.0.0.1:6379> 

1.2、LPOP、RPOP
127.0.0.1:6379> LPOP list	//  list     ( )
"v3"
127.0.0.1:6379> rPOP list	//  list      ( )
"v4r"
127.0.0.1:6379> LRANGE list 0 -1
1) "v2"
2) "v1"
127.0.0.1:6379> 

1.3、Lindex
127.0.0.1:6379> LINDEX list 0	//      list     
"v2"
127.0.0.1:6379> LINDEX list 1
"v1"


1.4、Llen
127.0.0.1:6379> LLEN list	//  list  
(integer) 2


1.5、LREM
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v4"
3) "v3"
4) "v2"
5) "v1"
127.0.0.1:6379> LREM list 2 v4	//  list     (2)  (v4)
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379> 

1.6、trim
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> LTRIM list 1 2	// list       
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "v3"
2) "v2"
127.0.0.1:6379> 

1.7.コンビネーションコマンドrpoplpush
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> rpoplpush list list2	//                 
"v1"
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v3"
3) "v2"
127.0.0.1:6379> LRANGE list2 0 -1
1) "v1"
127.0.0.1:6379> 

1.8、lset
127.0.0.1:6379> EXISTS list2	//        
(integer) 1
127.0.0.1:6379> LRANGE list2 0 -1
1) "v1"
127.0.0.1:6379> LSET list2 0 vv	//          ,        
OK
127.0.0.1:6379> LRANGE list2 0 -1
1) "vv"
127.0.0.1:6379> 

1.9、linset
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v3"
3) "v2"
127.0.0.1:6379> LINSERT list before v2 vv	//              
(integer) 4
127.0.0.1:6379> LINSERT list after v2 vv2	//              
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "v4"
2) "v3"
3) "vv"
4) "v2"
5) "vv2"
127.0.0.1:6379> 

2、まとめ
  • Listはチェーンテーブルとして想像でき、befor node after、left、rightを挿入することができる.
  • keyが存在しない場合は、新しいチェーンテーブルを作成し、存在する場合は、新しいコンテンツを追加します.
  • すべての値が除去された場合は、存在しないことを意味します.
  • は両側に挿入または変更され、効率が最も高く、中間元素の効率が低い.