• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Redis
 

Redis

on

  • 880 views

 

Statistics

Views

Total Views
880
Views on SlideShare
880
Embed Views
0

Actions

Likes
1
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 리스트 형태로 이루어져 있으며 , index 를 통한 접근이 가능하고 , 중간에 데이터를 추가할 수 있다 .
  • 데이터를 중간에 추가하거나 인덱스를 이용한 접근이 불가능 . Set 간의 집합 연산을 이용할 수 있다 .
  • 데이터를 중간에 추가하거나 인덱스를 이용한 접근이 불가능 . Set 간의 집합 연산을 이용할 수 있다 .

Redis Redis Presentation Transcript

  • Introduction to Redis Byeongweon Moon / Redduck
  • 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
  • Redis Sets$ redis-cli sadd news:1000:tags 1(integer) 1$ redis-cli sadd news:1000:tags 2(integer) 1$ redis-cli sadd news:1000:tags 5(integer) 1$ redis-cli sadd tag:1:objects 1000(integer) 1$ redis-cli sadd tag:2:objects 1000(integer) 1$ redis-cli sadd tag:5:objects 1000(integer) 1$ redis-cli sinter tag:1:objects tag:2:objects tag:5:objects10001) “1000”
  • Sorted Set Control• SET : ZADD, ZINCRBY• GET : ZRANGE, ZRANGEBYSCORE, ZSCORE, ZCARD, ZRANK, ZCOUNT• DEL : ZREM, ZREMRANGEBYRANK, ZREMRANGEBYSCORE• ETC : ZINTERSTORE, Z UNIONSTORE
  • Sorted sets$ redis-cli zadd hackers 1940 "Alan Kay"(integer) 1$ redis-cli zadd hackers 1953 "Richard Stallman"(integer) 1$ redis-cli zadd hackers 1969 "Linus Torvalds"(integer) 1$ redis-cli zadd hackers 1912 "Alan Turing"(integer) 1$ redis-cli zrange hackers 0 -11. Alan Turing2. Alan Kay3. Richard Stallman4. Linus Torvalds
  • 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
  • Benchmarks
  • Whos using Redis?• Twitter• github• stackoverflow• blizzard• digg• .....
  • Thanks, Any Questions?