Redis鍒楄〃 (List) 绫诲瀷璇﹁В锛氫粠鍛戒护浣跨敤鍒板疄闄呭簲鐢? 馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼

Redis鍒楄〃 (List) 绫诲瀷璇﹁В锛氫粠鍛戒护浣跨敤鍒板疄闄呭簲鐢?

馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 猸?List 绫诲瀷聽猸?/h2>

馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼馃巼


寮曡█

缁т笂绡囨枃绔犵殑 hash 绫诲瀷锛岃繖閲屼粙缁?Redis 涓殑鍒楄〃鐨勫熀鏈懡浠ゅ拰浣跨敤浠ュ強瀹為檯搴旂敤銆傚垪琛紙List锛夋槸 Redis 鎻愪緵鐨勪竴绉嶅父鐢ㄧ殑鏁版嵁缁撴瀯锛岄潪甯搁€傚悎鐢ㄦ潵澶勭悊涓€绯诲垪鏈夊簭鐨勬暟鎹€?/p>


1. 浠€涔堟槸 Redis 鍒楄〃锛?/h2>

Redis 鍒楄〃鏄竴绉嶅彲浠ュ瓨鍌ㄥ涓湁搴忓瓧绗︿覆鐨勬暟鎹被鍨嬨€備綘鍙互鎶婂畠鎯宠薄鎴愪竴涓畝鍗曠殑娓呭崟锛屾瘮濡傝喘鐗╂竻鍗曟垨鑰呭緟鍔炰簨椤瑰垪琛ㄣ€傚湪杩欎釜鍒楄〃閲岋紝姣忎釜鏉$洰閮芥槸涓€涓瓧绗︿覆锛屽苟涓斿畠浠寜鐓ф坊鍔犵殑椤哄簭鎺掑垪銆備綘鍙互鍦ㄥ垪琛ㄧ殑涓ょ杩涜鎻掑叆鎴栫Щ闄ゆ搷浣滐紝涔熷彲浠ヤ粠鍒楄〃涓幏鍙栨寚瀹氫綅缃殑鏁版嵁銆?/p>

鐗圭偣锛?/strong>

  • 鏈夊簭鎬?/strong>锛氬垪琛ㄤ腑鐨勫厓绱犳槸鎸夌収娣诲姞椤哄簭鎺掑垪鐨勩€?/li>
  • 璁块棶鏂瑰紡锛氬彲浠ラ€氳繃鏁板瓧绱㈠紩鏉ヨ闂垪琛ㄤ腑鐨勫厓绱狅紝绱㈠紩鍙互浠庡乏鍒板彸锛?, 1, 2...锛夋垨鑰呬粠鍙冲埌宸︼紙-1, -2, -3...锛夈€?/li>
  • 鍏佽閲嶅锛氬垪琛ㄤ腑鐨勫厓绱犲彲浠ラ噸澶嶅嚭鐜般€?/li>

2. 濡備綍鎿嶄綔 Redis 鍒楄〃锛?/h2>

Redis鍒楄〃 (List) 绫诲瀷璇﹁В锛氫粠鍛戒护浣跨敤鍒板疄闄呭簲鐢?></h6> 
<p></p> 
<h6 >娣诲姞鍏冪礌</h6> 
<ul><li> <p><strong><code>LPUSH</code> 鍛戒护</strong>锛氬湪鍒楄〃鐨勫乏渚э紙澶撮儴锛夋坊鍔犱竴涓垨澶氫釜鍏冪礌銆備緥濡傦細</p> <pre><code>redis> LPUSH mylist LPUSH mylist "banana" "cherry" (integer) 3

杩欎釜鍛戒护灏?"banana" 鍜?"cherry" 渚濇娣诲姞鍒?mylist 鐨勬渶宸﹁竟锛岀粨鏋滄槸 ["cherry", "banana", "apple"]銆?/p>

  • RPUSH 鍛戒护锛氬湪鍒楄〃鐨勫彸渚э紙灏鹃儴锛夋坊鍔犱竴涓垨澶氫釜鍏冪礌銆備緥濡傦細

    redis> RPUSH mylist "date"
    (integer) 4
    redis> RPUSH mylist "elderberry" "fig"
    (integer) 6

    杩欎釜鍛戒护灏?"date"銆?code>"elderberry" 鍜?"fig" 渚濇娣诲姞鍒?mylist 鐨勬渶鍙宠竟锛岀粨鏋滄槸 ["cherry", "banana", "apple", "date", "elderberry", "fig"]銆?/p>

  • LPUSHX 鍜?RPUSHX 鍛戒护锛氳繖浜涘懡浠ょ被浼间簬 LPUSH 鍜?RPUSH锛屼絾鍙湁褰撻敭宸茬粡瀛樺湪鏃舵墠浼氭墽琛屾彃鍏ユ搷浣溿€備緥濡傦細

    redis> LPUSHX myotherlist "grape"
    (integer) 0
    redis> RPUSHX mylist "grape"
    (integer) 7

    濡傛灉 myotherlist 涓嶅瓨鍦紝鍒欎笉浼氭坊鍔犱换浣曞厓绱狅紱鑰?mylist 宸茬粡瀛樺湪锛屾墍浠ヤ細鍦ㄥ叾宸︿晶娣诲姞 "grape"锛岀粨鏋滄槸 ["grape", "cherry", "banana", "apple", "date", "elderberry", "fig"]銆?/p>

  • 鑾峰彇鍏冪礌
    • LRANGE 鍛戒护锛氳幏鍙栧垪琛ㄤ腑鐗瑰畾鑼冨洿鍐呯殑鎵€鏈夊厓绱犮€備緥濡傦細

      redis> LRANGE mylist 0 2
      1) "grape"
      2) "cherry"
      3) "banana"
      redis> LRANGE mylist -3 -1
      1) "date"
      2) "elderberry"
      3) "fig"

      绗竴涓懡浠よ繑鍥炰簡浠庣 1 涓埌绗?3 涓殑鎵€鏈夊厓绱狅紝绗簩涓懡浠よ繑鍥炰簡鏈€鍚庝笁涓厓绱犮€?/p>

    • LINDEX 鍛戒护锛氳幏鍙栧垪琛ㄤ腑鏌愪釜鐗瑰畾浣嶇疆鐨勫厓绱犮€備緥濡傦細

      redis> LINDEX mylist 2
      "banana"
      redis> LINDEX mylist -1
      "fig"

      绗竴涓懡浠よ繑鍥炰簡浣嶄簬绗?3 浣嶇殑鍏冪礌 "banana"锛岀浜屼釜鍛戒护杩斿洖浜嗘渶鍚庝竴涓厓绱?"fig"銆?/p>

    鍒犻櫎鍏冪礌

    Redis鍒楄〃 (List) 绫诲瀷璇﹁В锛氫粠鍛戒护浣跨敤鍒板疄闄呭簲鐢?></p> 
<ul><li> <p><strong><code>LPOP</code> 鍛戒护</strong>锛氫粠鍒楄〃鐨勫乏渚хЩ闄ゅ苟杩斿洖绗竴涓厓绱犮€備緥濡傦細</p> <pre><code>redis> LPOP mylist

    绉婚櫎浜?"grape"锛屾柊鐨勫垪琛ㄤ负 ["cherry", "banana", "apple", "date", "elderberry", "fig"]銆?/p>

  • RPOP 鍛戒护锛氫粠鍒楄〃鐨勫彸渚хЩ闄ゅ苟杩斿洖鏈€鍚庝竴涓厓绱犮€備緥濡傦細

    redis> RPOP mylist
    "fig"

    绉婚櫎浜?"fig"锛屾柊鐨勫垪琛ㄤ负 ["cherry", "banana", "apple", "date", "elderberry"]銆?/p>

  • LREM 鍛戒护锛氬垹闄ゅ垪琛ㄤ腑涓庣粰瀹氬€肩浉鍖归厤鐨勫厓绱犮€備緥濡傦細

    redis> LREM mylist 1 "apple"
    (integer) 1
    redis> LREM mylist 0 "banana"
    (integer) 1

    绗竴涓懡浠ょЩ闄や簡绗竴涓嚭鐜扮殑 "apple"锛岀浜屼釜鍛戒护绉婚櫎浜嗘墍鏈?"banana" 鍏冪礌锛屾柊鐨勫垪琛ㄤ负 ["cherry", "date", "elderberry"]銆?/p>

  • 鎻掑叆鍏冪礌
    • LINSERT聽鍛戒护锛氬湪鐗瑰畾浣嶇疆鎻掑叆鍏冪礌銆備緥濡傦細
      redis> LINSERT mylist BEFORE "date" "avocado"
      (integer) 4
      redis> LINSERT mylist AFTER "cherry" "blueberry"
      (integer) 5
      绗竴涓懡浠ゅ湪聽"date"聽涔嬪墠鎻掑叆浜喡?code>"avocado"锛岀浜屼釜鍛戒护鍦?code>"cherry"聽涔嬪悗鎻掑叆浜喡?code>"blueberry"锛屾柊鐨勫垪琛ㄤ负聽["cherry", "blueberry", "avocado", "date", "elderberry"]銆?/li>
    鏌ヨ闀垮害
    • LLEN聽鍛戒护锛氳幏鍙栧垪琛ㄧ殑闀垮害銆備緥濡傦細
      redis> LLEN mylist
      (integer) 5
    闃诲寮忔搷浣?/h6>

    BLPOP聽鍜屄?code>BRPOP聽鍛戒护锛氳繖浜涘懡浠ゆ槸聽LPOP聽鍜屄?code>RPOP聽鐨勯樆濉炵増鏈€傚綋鍒楄〃涓虹┖鏃讹紝杩欎簺鍛戒护涓嶄細绔嬪嵆杩斿洖绌虹粨鏋滐紝鑰屾槸绛夊緟涓€娈垫椂闂达紝鐩村埌鏈夋柊鐨勫厓绱犺娣诲姞鍒板垪琛ㄤ腑銆備緥濡傦細

    redis> BLPOP mylist 0
    1) "cherry"
    2) "blueberry"
    redis> BRPOP mylist 0
    1) "mylist"
    2) "elderberry"

    濡傛灉聽mylist聽涓虹┖锛?code>BLPOP聽鍜屄?code>BRPOP聽浼氫竴鐩寸瓑寰咃紝鐩村埌鏈夋柊鍏冪礌琚坊鍔犮€?/p>

    Redis鍒楄〃 (List) 绫诲瀷璇﹁В锛氫粠鍛戒护浣跨敤鍒板疄闄呭簲鐢?></p> 
<p><img class= LPUSH queue "message2" (integer) 2

  • 娑堣垂鑰咃細
    redis> BRPOP queue 0
    1) "queue"
    2) "message2"
    redis> BRPOP queue 0
    1) "queue"
    2) "message1"
  • 绀句氦濯掍綋鏃堕棿绾?/h6>

    瀵逛簬绀句氦濯掍綋骞冲彴鏉ヨ锛岀敤鎴风殑鍔ㄦ€佹洿鏂伴€氬父鎸夌収鏃堕棿椤哄簭灞曠ず銆傞€氳繃浣跨敤 Redis 鍒楄〃锛屾垜浠彲浠ヨ交鏉惧湴缁存姢姣忎釜鐢ㄦ埛鐨勬椂闂寸嚎銆傛瘡褰撶敤鎴峰彂甯冩柊鍐呭鏃讹紝灏卞皢鍏舵坊鍔犲埌鍒楄〃椤堕儴锛涜€屽綋鐢ㄦ埛娴忚鏃讹紝鍒欐寜闇€鍔犺浇鏈€鏂扮殑鍑犳潯鍔ㄦ€併€?/p>

    绀轰緥锛?/p>

    • 鍙戝竷鏂板井鍗氾細
      redis> LPUSH user:1:timeline "tweet1"
      (integer) 1
      redis> LPUSH user:1:timeline "tweet2"
      (integer) 2
    • 鏌ョ湅鏈€鏂?10 鏉″井鍗氾細
      redis> LRANGE user:1:timeline 0 9
      1) "tweet2"
      2) "tweet1"
    浠诲姟璋冨害

    鍦ㄦ煇浜涘悗鍙扮郴缁熶腑锛屽彲鑳介渶瑕佸畾鏈熸墽琛屼竴浜涗换鍔°€傝繖鏃跺氨鍙互鎶婂嵆灏嗚鎵ц鐨勪换鍔℃斁杩涗竴涓垪琛ㄩ噷锛岀劧鍚庤缃畾鏃跺櫒閫愪釜鍙栧嚭骞舵墽琛岃繖浜涗换鍔°€?/p>

    绀轰緥锛?/p>

    • 娣诲姞浠诲姟锛?
      redis> RPUSH tasks "task1"
      (integer) 1
      redis> RPUSH tasks "task2"
      (integer) 2
    • 鎵ц浠诲姟锛?
      redis> LPOP tasks
      "task1"
      redis> LPOP tasks
      "task2"

    4. 鍐呴儴鏈哄埗绠€浠?/h2>

    涓轰簡鎻愰珮鏁堢巼锛孯edis 浼氭牴鎹垪琛ㄧ殑瀹為檯澶у皬閫夋嫨涓嶅悓鐨勫唴閮ㄨ〃绀烘柟娉曪細

    • 鍘嬬缉鍒楄〃锛坺iplist锛?/strong>锛氬鏋滃垪琛ㄤ腑鐨勫厓绱犱笉澶氫笖姣忎釜鍏冪礌閮藉緢灏忥紝閭d箞 Redis 浼氶€夋嫨涓€绉嶅彨鍋氬帇缂╁垪琛ㄧ殑鏂瑰紡鏉ュ瓨鍌紝杩欐牱鍙互鑺傜渷鍐呭瓨绌洪棿銆?/li>
    • 閾捐〃锛坙inkedlist锛?/strong>锛氬綋鍒楄〃鍙樺緱寰堝ぇ鎴栬€呭寘鍚ぇ閲忓ぇ灏哄鐨勫厓绱犳椂锛孯edis 浼氳浆鑰屼娇鐢ㄩ摼琛ㄦ潵琛ㄧず杩欎釜鍒楄〃锛屼粠鑰屼繚鎸佹搷浣滄€ц兘涓嶅彈褰卞搷銆?/li>

    绀轰緥锛?/p>

    • 浣跨敤鍘嬬缉鍒楄〃锛?
      redis> RPUSH smalllist "a" "b" "c"
      (integer) 3
      redis> OBJECT ENCODING smalllist
      "ziplist"
    • 浣跨敤閾捐〃锛?
      redis> RPUSH biglist "a" "b" "c" ... (瓒呰繃 512 涓厓绱?
      (integer) 513
      redis> OBJECT ENCODING biglist
      "linkedlist"

    5. 鍛戒护灏忕粨

    鎿嶄綔绫诲瀷鍛戒护鏃堕棿澶嶆潅搴?/th>
    娣诲姞RPUSH key value [value ...]O(k)锛宬 鏄厓绱犱釜鏁?/td>
    LPUSH key value [value ...]O(k)锛宬 鏄厓绱犱釜鏁?/td>
    `LINSERT key BEFOREAFTER pivot value`
    鏌ユ壘LRANGE key start endO(s+n)锛宻 鏄?start 鍋忕Щ閲忥紝n 鏄?start 鍒?end 鐨勮寖鍥?/td>
    LINDEX key indexO(n)锛宯 鏄储寮曠殑鍋忕Щ閲?/td>
    LLEN keyO(1)
    鍒犻櫎LPOP keyO(1)
    RPOP keyO(1)
    LREM key count valueO(k)锛宬 鏄厓绱犱釜鏁?/td>
    LTRIM key start endO(k)锛宬 鏄厓绱犱釜鏁?/td>
    淇敼LSET key index valueO(n)锛宯 鏄储寮曠殑鍋忕Щ閲?/td>
    闃诲鎿嶄綔BLPOP key [key ...] timeoutO(1)
    BRPOP key [key ...] timeoutO(1)

    浠ヤ笂灏辨槸鏈夊叧 Redis 鐨勫垪琛ㄧ殑鐭ヨ瘑锛屽悗缁細缁х画鏇存柊锛屾劅璋㈤槄瑙堬紒锛?/strong>

    上一篇:pen pal(pen pal的同义词)
    下一篇:vivox27pro怎么样值得买吗(vivox27pro的摄像头怎么样)