Cloud: a New Paradigm for Developers Svetlin Nakov Telerik Software Academy academy.telerik.com.
NoSQL Concepts, Redis, MongoDB, CouchDB Svetlin Nakov Telerik Software Academy academy.telerik.com...
-
Upload
lindsay-stevenson -
Category
Documents
-
view
263 -
download
2
Transcript of NoSQL Concepts, Redis, MongoDB, CouchDB Svetlin Nakov Telerik Software Academy academy.telerik.com...
NoSQL DatabasesNoSQL Concepts, Redis, MongoDB, CouchDB
Svetlin Nakov
Telerik Software Academyacademy.telerik.com
Manager Technical Traininghttp://www.nakov.com
http://schoolacademy.telerik.com
Table of Contents NoSQL Databases Overview Redis
Ultra-fast data structures server Redis Cloud: managed Redis
MongoDB Powerful and mature NoSQL
database MongoLab: managed MongoDB in
the cloud CouchDB
JSON-based document database with REST API
Cloudant: managed CouchDB in the cloud
2
What is NoSQL Database?
NoSQL (cloud) databases Use document-based model (non-
relational) Schema-free document storage
Still support indexing and querying
Still support CRUD operations (create, read, update, delete)
Still supports concurrency and transactions
Highly optimized for append / retrieve
Great performance and scalability NoSQL == “No SQL” or “Not Only
SQL”?
4
Relational vs. NoSQL Databases
Relational databases Data stored as table rows
Relationships between related rows
Single entity spans multiple tables
RDBMS systems are very mature, rock solid
NoSQL databases Data stored as documents
Single entity (document) is a single record
Documents do not have a fixed structure
5
*1
Relational vs. NoSQL Models
6
Name: Svetlin Nakov
Gender: male
Phone: +359333777555
Address:
- Street: Al. Malinov 31
- Post Code: 1729
- Town: Sofia
- Country: Bulgaria
Email: [email protected]
Site: www.nakov.com
Document ModelRelational Model
*1
*1
Name Svetlin Nakov
Gender male
Phone +359333777555
Email [email protected]
Site www.nakov.com
Country Bulgaria
Street Al. Malinov 31
Post Code
1729
Town Sofia
What is Redis? Redis is
Ultra-fast in-memory key-value data store
Powerful data structures server
Open-source software: http://redis.io
Redis stores data structures: Strings
Lists
Hash tables
Sets / sorted sets
8
Hosted Redis Providers Redis Cloud
Fully managed Redis instance in the cloud
Highly scalable, highly available
Free 1 GB instance, stored in the Amazon cloud
Supports data persistence and replication
http://redis-cloud.com
Redis To Go 5 MB free non-persistent Redis
instance
http://redistogo.com
9
C# API for Redis ServiceStack.Redis API
github.com/ServiceStack/ServiceStack.Redis
Sample C# code:
10
string redisHost = "redis.garantiadata.com";int redisPort = 14233;string redisPass = "some@pass0rd";using (var redisClient = new RedisClient(redisHost, redisPort, redisPass)){ string key = "username"; string value = "nakov"; redisClient.Set<string>(key, value); Console.WriteLine(redisClient.Get<string>(key));}
What is MongoDB? MongoDB – http://mongodb.org
Very powerful and mature NoSQL database
Scalable, high-performance, open-source
JSON-style document storage, schemaless
Replication & high-availability support
Auto sharding – clustering & data partitioning
Indexing and powerful querying
Map-Reduce – parallel data processing
GridFS – store files of any size
13
Hosted MongoDB Providers
MongoLab Free 0.5 GB instance
https://mongolab.com
MongoHQ Free 0.5 GB instance (sandbox)
https://www.mongohq.com
MongoOd Free 100 MB instance
https://www.mongood.com14
C# API for MongoDB
15
The official MongoDB C# driver from 10gen github.com/mongodb/mongo-csharp
-driver
Sample C# code:var connectionStr = "mongodb://user:pass@server:part";var client = new MongoClient(connectionSt);var server = client.GetServer();var db = server.GetDatabase("mongodb-name");var persons = db.GetCollection<Person>("Persons");persons.Insert<Person>(new Person(…));var resultPersons = from p in persons.AsQueryable<Person>() where p.Address.Town == "Sofia" select p;
What is CouchDB? Apache CouchDB
Open-source NoSQL database
Document-based: stored JSON documents
HTTP-based API
Query, combine, and transform documents with JavaScript
On-the-fly document transformation
Real-time change notifications
Highly available and partition tolerant
18
Hosted CouchDB Providers
Cloudant Managed CouchDB instances in the
cloud
Free $5 account – unclear what this means
https://cloudant.com
Has nice web-based administration UI
19
C# API for CouchDB
20
Many CouchDB C# APIs github.com/soitgoes/LoveSeat
Sample C# code:
var client = new CouchClient( dbHost, dbPort, dbUsername, dbPassword, false, AuthenticationType.Cookie);var db = client.GetDatabase("some-db");db.CreateDocument(new Person() { Name = "Svetlin Nakov", Email = "[email protected]"});
форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно
програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки
уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop
уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC
безплатен курс "Разработка на софтуер в cloud среда"
BG Coder - онлайн състезателна система - online judge
курсове и уроци по програмиране, книги – безплатно от Наков
безплатен курс "Качествен програмен код"
алго академия – състезателно програмиране, състезания
ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия
курс мобилни приложения с iPhone, Android, WP7, PhoneGap
free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно
?
? ? ??
?? ?
?
?
?
??
?
?
? ?
Questions?
?
NoSQL Databases
http://academy.telerik.com
Exercises1. Register for a free Cloudant account at
https://cloudant.com.
2. Write a simple "Dictionary" application in C# or JavaScript to perform the following in Cloudant: Add a dictionary entry (word +
translation)
List all words and their translations
Find the translation of given word
The UI of the application is up to you (it could be Web-based, GUI or console-based).
You may download a Cloudant client library from http://wiki.apache.org/couchdb/Related_Projects
23
Exercises (2)3. Implement the previous task
("Dictionary") with Redis
Register for a free "Redis To Go" account at: https://redistogo.com
Download the client libraries for your favorite programming language from http://redis.io/clients
4. Implement the previous task ("Dictionary") with MongoDB (register at MongoLab or MongoHQ)
24
Free Trainings @ Telerik Academy
Telerik School Academy schoolacademy.telerik.com
Telerik Software Academy academy.telerik.com
Telerik Academy @ Facebook facebook.com/TelerikAcademy
Telerik Software Academy Forums forums.academy.telerik.com