ashpb / hexlet-ruby-nosql

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby on Rails + NoSQL

Что такое NoSQL и зачем это нужно в реальной жизни

  • How do NoSQL databases work? Simply Explained: https://youtu.be/0buKQHokLK8
  • sql - структурированные данные (relations), растет вертикально
  • nosql - key - value, растет горизонтально (вширь), добавляем новые сервера (хэш по ключу), минус - запрос
  • Когда что юзать: sql - когда запросы не определены, хотим гибкость запросов, field constraints, мелкие и большие проекты; nosql: точно знаем id, быстродействие, средние проект

NoSQL? Maybe PosgreSQL JSON.

Redis

Базовое взаимодействие через консоль

Взаимодействие через гемы

https://github.com/redis/redis-rb

  • Базовые команды ( get/set, ping/pong ) redis.setex('exp', 5, 10) redis.set(:array, [1,2,3].to_json)

  • Redis vs HiRedis https://github.com/redis/hiredis-rb hiredis.write ["SET", "speed", "awesome"] hiredis.write ["GET", "speed"] hiredis.read

Основные структуры которые могут пригодиться

В реальной жизни

  • Нужен для Sidekiq и ActionCable

  • Кеширование в Rails Rails.application.configure do config.cache_store = :redis_cache_store, { url: "redis://localhost:6379/0" } end

  • Redis-mutex для крутых мьютексов https://github.com/kenn/redis-mutex

ElasticSearch

Взаимодействие с помощью Elasticvue

Расширение для браузера: https://elasticvue.com/ (красивое), https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm (страшненькое)

Взаимодействие через гемы

https://github.com/elastic/elasticsearch-ruby https://github.com/toptal/chewy

MongoDB

About


Languages

Language:Ruby 98.6%Language:Shell 1.4%