session用mysql实现session共享实践

 写了篇<

                  <图一 支持的数据库类型及脚本>

redis:使用redis做存储介质,对应的实现类为:

JdbcOperationsSessionRepository

Hazelcast:使用内存做存储介质,对应的实现类为:

HazelcastSessionRepository

Hazelcast作为一个高度可扩展的数据分发和集群平台,提供了高效的、可扩展的分布式数据存储、数据缓存。Hazelcast是开源的,在分布式技术方面,Hazelcast提供了十分友好的接口供开发者选择,如Map,Queue,ExecutorService, Lock和Jcache。 
Hazelcast的稳定性很高,分布式应用可以使用Hazelcast进行存储数据、同步数据、发布订阅消息等。Hazelcast是基于Java开发的,其客户端有Java, C/C++, .NET以及REST。Hazelcast同时也支持memcache协议。它很好的支持了Hibernate,可以很容易的在当今流行的数据库系统中应用。

2.spring-session-jdbc使用mysql保存共享session的实现实践

2.0 准备工作

  如<图一 支持的数据库类型及脚本>所示,找到schema-mysql.sql脚本,放入sql-client客户端执行,如sqlyog,红色部分是我自己添加的,为了可以重复执行的。

复制代码
DROP TABLE IF EXISTS SPRING_SESSION_ATTRIBUTES; DROP TABLE IF EXISTS SPRING_SESSION; CREATE TABLE SPRING_SESSION (     PRIMARY_ID CHAR(36) NOT NULL,     SESSION_ID CHAR(36) NOT NULL,     CREATION_TIME BIGINT NOT NULL,     LAST_ACCESS_TIME BIGINT NOT NULL,     MAX_INACTIVE_INTERVAL INT NOT NULL,     EXPIRY_TIME BIGINT NOT NULL,     PRINCIPAL_NAME VARCHAR(100),     CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID) ) ENGINE=INNODB ROW_FORMAT=DYNAMIC;  CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID); CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME); CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME);  CREATE TABLE SPRING_SESSION_ATTRIBUTES (     SESSION_PRIMARY_ID CHAR(36) NOT NULL,     ATTRIBUTE_NAME VARCHAR(200) NOT NULL,     ATTRIBUTE_BYTES BLOB NOT NULL,     CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME),     CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION(PRIMARY_ID) ON DELETE CASCADE ) ENGINE=INNODB ROW_FORMAT=DYNAMIC;
复制代码

此时创建了两张表

  SPRING_SESSION

  SPRING_SESSION_ATTRIBUTES

 通过PRIMARY_ID关联,执行结果如下:

 

2.1 使用sts创建spring-boot项目,项目名称session-jdbc,使用jdbc,mysql,we

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信