3. WHAT IS REDIS ?
o REmote DIrectory Server
o By Salvatore Sanfilippo (@antirez) working at VMWare
o March 2009
o redis.io
4. WHAT IS REDIS ?
o REmote DIrectory Server
o NOSQL => Key-Value
o Data Structure Server
5. NOSQL ( Not Only SQL )
o Key-Value Store
o Document Database
o Column Store
o Graph Database
http://www.10gen.com/nosql
6. NOSQL ( Not Only SQL )
o Key-Value Store
o Redis, Riak, Memcached, Tokyo Cabinet, LevelDB
o Document Database
o MongoDB, CouchDB, RethinkDB
o Column Family Store
o Cassandra, Hadoop, HBase
o Graph Database
o Neo4J, HyperGraphDB, InfoGrid
7. WHY WE USE REDIS ?
o Very Fast ( In memory )
o Few Dependencies
o Single Thread
o Lot of client available
o Java
o Ruby
o PHP
o Python
o .Net
8. FEATURES
o Values Type
o String
o List
o Set
o Hash
o Sorted Set
o Persistence
o Memory
o Snapshot
o Append Only Log ( AOL )
13. List
o List of String
o Sorted by insertion order
o Max length of List = 232 -1
o Big O
o Add operation = O(1)
o Access operation = O(S+N)
o Update = O(1)
o Delete = O(1)
14. Set
o Unordered collections of String
o Not repeat members
o Max length of List = 232 -1
o Operation => Union, Intersection, Different
o Big O
o Add operation = O(N)
o Access operation = O(N)
o Update = O(1)
o Delete = O(1)
o Exists = O(1)
15. Sorted Set
o Like Set BUT …
o Ordered collections of String by Score
o Big O
o Add operation = O(log(N))
o Access operation = O(log(N)+M)
o Delete = O(M*log(N))
16. Hash
o Mapping Key-Value
o Max length of List = 232 -1
o Big O
o Add operation = O(N)
o Access operation = O(1)
o Delete = O(1)
19. FOR WINDOWS
o Download at
o https://github.com/dmajkic/redis/downloads
o Commands
o redis-server.exe
o redis-cli.exe
o redis-benchmark
20. FOR UNIX
$ wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
$ tar xzf redis-2.6.14.tar.gz
$ cd redis-2.6.14
$ make
Starting server
$ src/redis-server
Interact with Redis
$ src/redis-cli
42. Implementation ?
o Set
o Define Key
o Online user
o Key = user:online:<time>
o Value = <user id>
o Friends
o Key = user:friend:<user id>
o Value = <user id>
43. Implementation ?
o Online Users
o sadd user:online:1 1
o sadd user:online:1 2
o sadd user:online:1 3
o sadd user:online:2 3
o sadd user:online:2 4
45. Implementation ?
o Find Friends are online in last 2 minutes
o sunionstore online_users user:online:1 user:online:2
o sinter online_users user:friend:1
54. Add data to Redis Sorted Set
o zadd my_data 0 r
o zadd my_data 0 re
o zadd my_data 0 red
o zadd my_data 0 red*
o zadd my_data 0 redi
o zadd my_data 0 redis
o zadd my_data 0 redis*
55. List of data in Sorted Set
o zrange my_data 0 -1
o zrank my_data r
o zrank my_data re
56. How to apply in application ?
o Let’s discussion