Redis
 sql >> база данни >  >> NoSQL >> Redis

Проектиране на таблица на база данни Redis като SQL?

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 .

Вашите изисквания по принцип ще управляват дизайна и структурите, които използвате.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis Cache в .NET Core 3 изисква ли използването на пакета Stack Exchange?

  2. Как StackExchange.Redis използва множество крайни точки и връзки?

  3. Как да внедря мултинаемане за Redis при пролетно зареждане

  4. Свързване с Redis To Go с PHP

  5. Socket.io, Redis Store и IE