ユーザ管理システム用にmysqlデータベースをnoSql に移行中です。 に該当するユーザを特定の年齢層に選択することができる場合は、 を知りたいと思います..私が行う各ユーザのMySqlをNoSqlに移行する
A)私は国が、私は、ユーザーごとに1 インクリメントUID
Bと呼ばれるキープ):
HSETユーザー:名ジョー HSETユーザ:年齢1 -99
例えば、 が20と25の間のすべてのユーザーを取得するにはどうすればよいですか?
これは可能ですか?
おかげ
ユーザ管理システム用にmysqlデータベースをnoSql に移行中です。 に該当するユーザを特定の年齢層に選択することができる場合は、 を知りたいと思います..私が行う各ユーザのMySqlをNoSqlに移行する
A)私は国が、私は、ユーザーごとに1 インクリメントUID
Bと呼ばれるキープ):
HSETユーザー:名ジョー HSETユーザ:年齢1 -99
例えば、 が20と25の間のすべてのユーザーを取得するにはどうすればよいですか?
これは可能ですか?
おかげ
は、あなたが上で、ご希望の検索クエリを実行しているシステム取り残さので、私は両方をお答えします。
mySQLの条件に一致するユーザーを取得することは、SELECT文で正しいwhere句を使用することの単なる問題です。
SELECT * FROM user WHERE age BETWEEN 20 AND 25
のRedisで
、hset sets a key to a value、および新しいものと既存の値を置き換えます同じキーで、その後のhsetsを呼び出します。各ユーザーと年齢に合わせて、実際には、redisデータストア内の各値を移行クエリの次のレコードに置き換え、最後のレコードのみをレディで移行します。あなたは、MySQLから移行し、最終的な記録は「ジョー、年齢20」であれば
ので、Redisのは、MySQLだけで保存され、他のすべてが失われます以下があります:要するに
Key Value
Name Joe
Age 20
、あなたデータは正しくモデル化されていないため、検索は不可能です。実際、NoSQLストアのこの選択は、あなたがしようとしているものには適切ではないと言っています。
Redisはキーと値のペアを格納するようにのみ設計されています。文字通りソーステーブルに2つのカラムしかない場合を除き、完全なmySQLテーブルからマイグレーションすることはほとんど意味がありません。たとえば、頻繁にアクセスするデータポイントをmySQLからキャッシュする場合や、redisを使用して高速更新が必要な単一のデータポイントをモデル化した場合、ユースケースはより意味をなさないでしょう。 Redisは別のデータストアを補完し、ロギングに使用でき、メッセージングに使用できますが、RDBMSを置き換えることはできません。
本当にmySQLをNoSQLストアに置き換えたい場合は、なぜこの移行を試みているのか、アプリケーションにどのようなメリットをもたらしているのか、受け入れるリスクと欠点についてお尋ねください。これらの答えはあなたの決定につながります。大量のデータを表形式で複数のマシンに渡って処理する必要がある場合は、CassandraのようなColumnデータストアを使用します。半構造化データを処理する必要がある場合は、MongoのようなDocumentデータストアがその必要性をサポートします。あなたが関係をモデル化する必要があるならば、Neo4jは素晴らしいです。あなたがそれらのもののいずれかを必要としない場合は、そこで停止し、まったく移行しないでください。 NoSQLはトレンディでエキサイティングなものですが、すべてにNoSQLソリューションが必要というわけではありませんが、そうであれば、必要なものに基づいて正しいデータストアを選択するために特別な注意を払う必要があります。
どのようにデータをクエリするかは、実際に使用しているデータベース(または少なくとも種類のデータベース)に依存します... – David
redis –