49

RedisConf17 - Redis as Java Session Store

Embed Size (px)

Citation preview

Page 2: RedisConf17 - Redis as Java Session Store

_

_

_

Page 3: RedisConf17 - Redis as Java Session Store

_

_

_

_

Page 4: RedisConf17 - Redis as Java Session Store
Page 5: RedisConf17 - Redis as Java Session Store
Page 6: RedisConf17 - Redis as Java Session Store

a presentation from 2001

Page 7: RedisConf17 - Redis as Java Session Store

J2EE Servlet Sessions

_ javax.servlet.http.HttpSession

_ A way to identify a user across more than one page request or visit to a Web site and to store information about that user.

_ Application servers implement high availability features• Replication, failover

Page 8: RedisConf17 - Redis as Java Session Store

J2EE Servlet Sessions API

_ Attributes• set/getAttribute

_ Listeners• Adding/removing attributes• Creation/Expiry of sessions• Failover of sessions

_ Propagated via cookie (JSESSIONID) or via URL or via FORM parameters

jsessionattribute value

attribute value

attribute value

Set-Cookie:

JSESSIONID=eVMwvIslqWWdilsxbs!738403096!-1321526768;

path=/; secure; HttpOnly

Page 9: RedisConf17 - Redis as Java Session Store
Page 10: RedisConf17 - Redis as Java Session Store

_

_

_

_

_

10

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 11: RedisConf17 - Redis as Java Session Store

_

_

_

11

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

New Gen Old Gen Meta

Page 12: RedisConf17 - Redis as Java Session Store

_

_

12

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 13: RedisConf17 - Redis as Java Session Store

_

_

13

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Since beginning of sessions - slow

Page 14: RedisConf17 - Redis as Java Session Store

_

_

_

14

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

key{sharding_part}

twemproxy

Page 15: RedisConf17 - Redis as Java Session Store

_

_

15

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 16: RedisConf17 - Redis as Java Session Store

_

_

_

16

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 17: RedisConf17 - Redis as Java Session Store

_

_

_

17

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

key{sharding_part}

Page 18: RedisConf17 - Redis as Java Session Store
Page 19: RedisConf17 - Redis as Java Session Store

_

_

_

19

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 20: RedisConf17 - Redis as Java Session Store

_

_

_

••

_

20

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 21: RedisConf17 - Redis as Java Session Store

_

• Filter

• HttpServletRequestWrapper.getSession()

_

_

21

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Web App

Filter

Page 22: RedisConf17 - Redis as Java Session Store
Page 23: RedisConf17 - Redis as Java Session Store
Page 24: RedisConf17 - Redis as Java Session Store
Page 25: RedisConf17 - Redis as Java Session Store
Page 26: RedisConf17 - Redis as Java Session Store
Page 27: RedisConf17 - Redis as Java Session Store

_

27

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 28: RedisConf17 - Redis as Java Session Store

_

_

28

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 29: RedisConf17 - Redis as Java Session Store
Page 30: RedisConf17 - Redis as Java Session Store
Page 31: RedisConf17 - Redis as Java Session Store
Page 32: RedisConf17 - Redis as Java Session Store

_

_

Page 33: RedisConf17 - Redis as Java Session Store

_

_

_

33

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

expiresession1 instantsession2 instantsession3 instant

Page 34: RedisConf17 - Redis as Java Session Store

_

_

_

••

34

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

expiresession1 instantsession2 instantsession3 instant

Page 35: RedisConf17 - Redis as Java Session Store
Page 36: RedisConf17 - Redis as Java Session Store

_

_

_

36

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

DEPENDENCIES!

Page 37: RedisConf17 - Redis as Java Session Store

_

_

_

_

37

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Session Filter

Web App

Filter

Filter

Page 38: RedisConf17 - Redis as Java Session Store
Page 39: RedisConf17 - Redis as Java Session Store

_

_

_

39

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Agent

Container

Web App

Filter

Page 40: RedisConf17 - Redis as Java Session Store
Page 41: RedisConf17 - Redis as Java Session Store

_

_

_

41

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 42: RedisConf17 - Redis as Java Session Store

_

java -javagent:$SESSION_PATH/session-agent.jar \-jar ../start.jar \--lib=$SESSION_PATH/session-replacement-shaded.jar

_

42

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 43: RedisConf17 - Redis as Java Session Store

_

43

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 44: RedisConf17 - Redis as Java Session Store

_

44

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 45: RedisConf17 - Redis as Java Session Store

_

45

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 46: RedisConf17 - Redis as Java Session Store

46

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

Page 47: RedisConf17 - Redis as Java Session Store

_

_

47

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

_

_

_

Page 49: RedisConf17 - Redis as Java Session Store

© A

mad

eus

IT G

rou

p a

nd

its

affi

liate

s an

d s

ub

sid

iari

es

You can follow us on:

AmadeusITgroupamadeus.comamadeus.com/blog