年の功より亀の甲

カメがプログラミングとか技術系について書くブログです。

redisお勉強話 for 2016 part1【ころなとサリー AdventCalendar 2016/12/3】

みんな大好き、ころなだよ('ω')
去年に引き続いて、今年もredisをやります
お仕事でもちょっとずと増えてきたよね…?('ω')

redisって何?というみなさんは、去年書いた入門の記事がおすすめです。

今回の前提

第3回目なので、ちょっとずつ条件が増えていってます。

  • redisはインストールしてバージョン確認ぐらいはした
  • nosqlって意味は何となく分かるから、redisを対象にして実際にお勉強

redisでリストに関するコマンドで遊ぶよ('ω')

リストって何?

「動的に要素を追加や削除することのできる配列」だけど、きちんとしたお話しはgoogle先生に聞いてみることをお勧めします。
Google

redisでは、データを入れておく型の一つとして、連結リストを使用することができます。
これは、sqlにはなくてredisにある特徴的で便利な部分なので、これから触ってみます。

リストの右端に要素を追加するよ

f:id:sakuriver:20161203234943p:plain

corona-keyというキーにokusuという一個目の要素が追加されたので、現在の長さとして1が返ってきました

もう2個追加するよ('ω')

f:id:sakuriver:20161203235531p:plain

2個追加されたので、最後のコマンドで1+2=3で現在の長さが返ってきました。

リストの全体を取得してみるよ

f:id:sakuriver:20161203235804p:plain


rpushはリストの最後に追加しているので、追加した順番にデータが取得されています。
lrange キー名 で末尾のインデックスに-1を指定すると、すべての要素を取得することができます。
今回の例だと、「okusu」、「kamedot」、「onepanman」の要素をすべて取得することができています。

f:id:sakuriver:20161204000519p:plain

corona-keyのイメージ

指定した要素だけ取得するよ

f:id:sakuriver:20161204000845p:plain

lindex キー名 要素の位置 で、ほしい要素だけを取得することができました。

左端の要素を取り出すよ

corona-keyにあるデータは一度取得したら、次からは不要なことが分かりました。
そこで、okusuを取得した後に削除されているかを確認してみます。

f:id:sakuriver:20161204001422p:plain

lrangeは先に紹介していますが、リストの全体を取得するだけのものなので、lpopの時点で削除されているようです。

感想

redisのリスト型は、プログラムで扱うリストと同様な追加、削除、取得になっていてかなり使いやすそうです。
次回からは、集合型やハッシュ型についてコマンドを試しながら勉強していきます('ω')

12/4はさりーさんだよ、任せました('ω')ノ