Redisはアイテムをリストの中央から一番上に移動します

ジョシュアアンダーソン

このようなことが可能かどうか疑問に思いました。私はredisリストを使用していますが、次のようにアイテムをリストの中央からリストの一番上に移動できるかどうか疑問に思っていました。

LPUSH mylist "This"
LPUSH mylist "is"
LPUSH mylist "a"
LPUSH mylist "Test"

Somehow Move "a" to top

LRANGE mylist
    1. "a"
    2. "This"
    3. "Is"
    4."Test"

助けてくれてありがとう!

アギス

Redisリストはリンクリストを使用して実装されており、リンクリストはそのような使用には適していません(つまり、ランダムアクセスと効率的なインデックス作成)。

「a」(両端を含む)まですべての要素をどこかに保存してから、を使用してリストから削除しLTRIM、必要な順序で(つまりRPOP、最後の要素を入力しLPUSHてから)もう一度プッシュする必要がありますRedisこれをすぐにサポートするため、埋め込みLuaスクリプトを使用してこれを行うことができます。

ただし、各単語をリストに1回だけ表示する場合は、並べ替えセットを使用してこれを効率的に行うことができます特定の要素のスコアを他のすべての要素よりも大きいものに更新する必要があります(ZADD)。次に、ZRANGEBYSCORE実行して、並べ替えられたセットを取得します。

ただし、ソートされたセットを使用することにはトレードオフがあります。ほとんどの場合、要素の挿入/削除は、リストから値をプッシュ/ポップする(つまり、一定時間で発生する)よりも遅くなります(つまり、対数時間で発生します)。それはすべてあなたの問題に依存します、あなたは異なるアプローチを比較検討し(Redisドキュメントは各操作の時間計算量を提供します)そしてあなたの問題に合うものを選ぶべきです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

単一のアイテムをリストの一番上に移動します

分類Dev

選択したアイテムを移動してリストの一番上に移動する方法

分類Dev

AngularJSはng-focusを使用してリストアイテムをリストの一番上に移動します

分類Dev

JScrollPaneで選択したアイテムをリストの一番上に移動し、残りのアイテムをJavaで表示します

分類Dev

JScrollPaneで選択したアイテムをリストの一番上に移動し、残りのアイテムをJavaで表示します

分類Dev

クリックするとアイテムを削除し、それらのアイテムをリストの一番下に移動します

分類Dev

(Eclipse)アイテムをlistveiwの一番上に移動します

分類Dev

jQuery Sortable-ドラッグアウトした場合、アイテムをリストの一番上に移動します。

分類Dev

appendToを使用してリストアイテムを一番下に移動します

分類Dev

jQueryを使用して、特定のクラスを持つ順序付きリストアイテムをリストの一番上に移動する方法

分類Dev

RecyclerViewをクリックしたアイテムを一番上に移動します

分類Dev

データベースからコンポーネントの状態でリストの一番上に新しいアイテムを追加します

分類Dev

アイテムをクリックしたときにrecycledViewアイテムを一番下に移動する方法はありますか?

分類Dev

Pythonクラッシュコース、第2版。横向きのシューティングゲーム。エイリアンは、一番上の行が一番下に当たるまで下に移動し続けます

分類Dev

Djangoクエリセット-アルファベット順に並べ替えてから、特定のエントリを一番上に移動します

分類Dev

Flutter-選択したアイテムがListViewの一番上に移動します

分類Dev

Jqueryはテーブルの行を一番上に移動します

分類Dev

アイテムがリストの一番下に移動したことをユーザーに表示する

分類Dev

このテキストを一番上に移動するにはどうすればよいですか

分類Dev

テキストエディットのスクロールバーを一番上に移動します

分類Dev

Cssグリッドアイテムはスクロールの一番上に固執します

分類Dev

ツールバーを相対レイアウトの一番上に移動します

分類Dev

Swift UITableView-新しいアイテムをリストの一番下ではなく一番上に配置するにはどうすればよいですか?

分類Dev

MSAccess-複数選択リストボックスをクリアし、一番上の行に移動し、選択を解除します

分類Dev

cssで一番上の行をテキストの一番下に移動する方法

分類Dev

PLACEHOLDERテキストを一番上に移動する方法

分類Dev

Android:配列リストの一番上にアイテムを追加

分類Dev

Android:配列リストの一番上にアイテムを追加

分類Dev

FABをレイアウトの一番上に移動する方法

Related 関連記事

  1. 1

    単一のアイテムをリストの一番上に移動します

  2. 2

    選択したアイテムを移動してリストの一番上に移動する方法

  3. 3

    AngularJSはng-focusを使用してリストアイテムをリストの一番上に移動します

  4. 4

    JScrollPaneで選択したアイテムをリストの一番上に移動し、残りのアイテムをJavaで表示します

  5. 5

    JScrollPaneで選択したアイテムをリストの一番上に移動し、残りのアイテムをJavaで表示します

  6. 6

    クリックするとアイテムを削除し、それらのアイテムをリストの一番下に移動します

  7. 7

    (Eclipse)アイテムをlistveiwの一番上に移動します

  8. 8

    jQuery Sortable-ドラッグアウトした場合、アイテムをリストの一番上に移動します。

  9. 9

    appendToを使用してリストアイテムを一番下に移動します

  10. 10

    jQueryを使用して、特定のクラスを持つ順序付きリストアイテムをリストの一番上に移動する方法

  11. 11

    RecyclerViewをクリックしたアイテムを一番上に移動します

  12. 12

    データベースからコンポーネントの状態でリストの一番上に新しいアイテムを追加します

  13. 13

    アイテムをクリックしたときにrecycledViewアイテムを一番下に移動する方法はありますか?

  14. 14

    Pythonクラッシュコース、第2版。横向きのシューティングゲーム。エイリアンは、一番上の行が一番下に当たるまで下に移動し続けます

  15. 15

    Djangoクエリセット-アルファベット順に並べ替えてから、特定のエントリを一番上に移動します

  16. 16

    Flutter-選択したアイテムがListViewの一番上に移動します

  17. 17

    Jqueryはテーブルの行を一番上に移動します

  18. 18

    アイテムがリストの一番下に移動したことをユーザーに表示する

  19. 19

    このテキストを一番上に移動するにはどうすればよいですか

  20. 20

    テキストエディットのスクロールバーを一番上に移動します

  21. 21

    Cssグリッドアイテムはスクロールの一番上に固執します

  22. 22

    ツールバーを相対レイアウトの一番上に移動します

  23. 23

    Swift UITableView-新しいアイテムをリストの一番下ではなく一番上に配置するにはどうすればよいですか?

  24. 24

    MSAccess-複数選択リストボックスをクリアし、一番上の行に移動し、選択を解除します

  25. 25

    cssで一番上の行をテキストの一番下に移動する方法

  26. 26

    PLACEHOLDERテキストを一番上に移動する方法

  27. 27

    Android:配列リストの一番上にアイテムを追加

  28. 28

    Android:配列リストの一番上にアイテムを追加

  29. 29

    FABをレイアウトの一番上に移動する方法

ホットタグ

アーカイブ