Redis with spring data key value

13

Click here to load reader

Transcript of Redis with spring data key value

Page 1: Redis with spring data key value

Redis withSpring Data Document

Sean@WeaveusMay 2011

Page 2: Redis with spring data key value

• http://redis.io/

• open source

• by CitrusByte

• sponsored by VMWare

2Monday, May 9, 2011

Page 3: Redis with spring data key value

• key/value store

• in memory/persistence

• Values

• String, List, Set, Binary, ...

• command by values

• speed - faster

• replication - master/slave async

3Monday, May 9, 2011

Page 4: Redis with spring data key value

4Monday, May 9, 2011

Page 5: Redis with spring data key value

// String Type Value

sean@ubuntu:~$ redis-cli set mykey "my binary safe value"OKsean@ubuntu:~$ redis-cli get mykeymy binary safe value

sean@ubuntu:~$ redis-cli set mykey 100OKsean@ubuntu:~$ redis-cli incr mykey(integer) 101sean@ubuntu:~$ redis-cli incrby mykey 10(integer) 111

Redis Command Client

5Monday, May 9, 2011

Page 6: Redis with spring data key value

sean@ubuntu:~$ redis-cli rpush messages "hello"OKsean@ubuntu:~$ redis-cli rpush messages "fine"OKsean@ubuntu:~$ redis-cli rpush messages "nosql"OKsean@ubuntu:~$ redis-cli lrange messages 0 21. hello2. fine3. nosqlsean@ubuntu:~$ redis-cli lrange messages 0 -1 // first to end1. hello2. fine3. nosql

List

6Monday, May 9, 2011

Page 7: Redis with spring data key value

$ 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

List with ID

• generate unique ID

• a new actual data

• push new ID of the actual data

7Monday, May 9, 2011

Page 8: Redis with spring data key value

sean@ubuntu:~$ redis-cli sadd news:1000:tags 1(integer) 1sean@ubuntu:~$ redis-cli sadd news:1000:tags 100(integer) 1sean@ubuntu:~$ redis-cli sadd news:1000:tags 777(integer) 1sean@ubuntu:~$ redis-cli sadd tags:1:objects 1000(integer) 1sean@ubuntu:~$ redis-cli sadd tags:100:objects 1000(integer) 1sean@ubuntu:~$ redis-cli sadd tags:777:objects 1000(integer) 1sean@ubuntu:~$ redis-cli smembers news:1000:tags1. 7772. 1003. 1sean@ubuntu:~$ redis-cli sismember news:1000:tags 5(integer) 0

Set

8Monday, May 9, 2011

Page 9: Redis with spring data key value

sean@ubuntu:~$ redis-cli sadd news:1001:tags 888(integer) 1sean@ubuntu:~$ redis-cli sadd tags:888:objects 1001(integer) 1sean@ubuntu:~$ redis-cli sinter tags:777:objects tags:888:objects(empty list or set)sean@ubuntu:~$ redis-cli sunion tags:777:objects tags:888:objects1. 10002. 1001

Set Selection/Union

9Monday, May 9, 2011

Page 10: Redis with spring data key value

sean@ubuntu:~$ redis-cli zadd hackers 1940 "Alan Kay"(integer) 1sean@ubuntu:~$ redis-cli zadd hackers 1969 "Linus"(integer) 1sean@ubuntu:~$ redis-cli zrange hackers 0 -11. Alan Kay2. Linussean@ubuntu:~$ redis-cli zrangetbyscore hackers 1900 19501. Alan Kay

Sorted Set

10Monday, May 9, 2011

Page 11: Redis with spring data key value

import redis.clients.jedis.JedisJedis jedis = new Jedis("ubuntu.sean.me")println jedis.lrange("messages", 0, -1)

// Result[hello, fine, nosql]

with Java

• JDBC-Redis

• Jedis library - Popular

11Monday, May 9, 2011

Page 12: Redis with spring data key value

with Spring

RedisDriver

RedisTemplate

<<interface>>

Bean

Bean

@AutowiredRedis

Operations

12Monday, May 9, 2011

Page 13: Redis with spring data key value

Beans

13Monday, May 9, 2011