Ready to Redis• Document-oriented Database• Key-Value Data Store Program• Key can contain strings, hashes, lists, sets and sorted sets• Value can contain strings, lists, sets, sorted set• Redis use RAM for data store
Key-Value Data Store• Insert data with specific key• Get data with key by O(1) compexity• Value can contain structured strings like as JSON, XML
List Control• SET : LINSERT, LPUSH, RPUSH, LSET• GET : LPOP, LRANGE, RPOP• DEL : LREM• ETC : LTRIM, LLEN
Pushing IDs instead of the actual data$ redis-cli incr next.news.id(integer) 1$ redis-cli set news:1:title "Redis is simple"OK$ redis-cli set news:1:url"http://code.google.com/p/redis"OK$ redis-cli lpush submitted.news 1OK$ redis-cli lrange submitted.news 0 -11) “1”
Set Control• SET : SADD,• GET : SPOP, SRANDMEMBER, SMEMBERS• DEL : SREM• ETC : SINTER, SUNION, SCARD, SDIFF, SMOVE, SISMEMBER
Replication• Master-Slave replication• Master can have multiple slaves• Slaves are able to accept other slaves connections• Slaves can also be connected to other slaves in graph-like structure• Redis replication is non-blocking on the master side. but blocking on the slave side.
How replication works• To configure add below line to slaves configuration file slaveof IP PORT• After configuration done. when upon connection slave sends a SYNC command• Master start background data saving and collect all new commands received that will modify dataset• When background saving complete, transfers the dataset to slave, then send saved commands
Publish / Subcribe• Messaging pattern where senders of messages do not program the messages to be sent directly to specific receiver.• SUBCRIBE [channel] command create channel or subscribe channel• PUBLISH [channel] [message] command send message via• Support pattern matching subscribe with PSUBSCRIBE
Pipelining• Whatever network speed fast or slow, theres always latency.• To avoid network latency. Redis support multi commands send with one request.• Send commands with new line delemiter echo -en "PINGrnPINGrnPINGrn" | nc localhost 6379• Result wiil received after all commands processed
Whos using Redis?• Twitter• github• stackoverflow• blizzard• digg• .....