Redisは、他のNoSQLデータストアと同様に、実行する内容に基づいてさまざまな要件があります。
Redisには、必要に応じて役立つ可能性のあるいくつかのデータ構造があります。たとえば、select * from student where name = 'xxx'
が必要な場合 Redisのhash
を使用できます 。
redis 127.0.0.1:6379> hmset student:xxx id 1 college nnn address xn
OK
redis 127.0.0.1:6379> hgetall student:xxx
1) "id"
2) "1"
3) "college"
4) "nnn"
5) "address"
6) "xn"
同じことをしたいがwhere college = 'nnn'
を選択するなど、他のクエリがある場合 次に、データを非正規化する必要があります。非正規化は通常SQLでは悪いことですが、NoSQLでは非常に一般的です。
主なクエリが名前に対して行われるが、大学に対してクエリが必要になる場合は、set
を追加するなどの操作を行うことができます。 ハッシュに加えて。
redis 127.0.0.1:6379> sadd college:nnn student:xxx
(integer) 1
redis 127.0.0.1:6379> smembers college:nnn
1) "student:xxx"
このように構造化されたデータを使用して、大学xnに行く名前のすべての情報を検索する場合は、最初にset
を選択します。 、次に各hash
を選択します set
で返された名前に基づく 。
要件は通常、使用する設計と構造を左右します。