Spring boot 将 Session 放入 Redis

本文节选自《Netkiller Java 手札》

Spring boot 将 Session 放入 Redis

11.19. Session

11.19.1. Redis

11.19.1.1. Maven

增加下面代码到pom.xml

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
		</dependency>

11.19.1.2. application.properties

spring.session.store-type=redis 将Session 存储在Redis中

				spring.redis.database=0
spring.redis.host=192.168.4.1
spring.redis.port=6379
#spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=30
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.timeout=10

spring.session.store-type=redis				

11.19.1.3. Application

				package cn.netkiller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan
@EnableMongoRepositories
@EnableJpaRepositories
@EnableScheduling
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);

	}
}				

RedisHttpSessionConfig.java

				package cn.netkiller.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@Configuration
@EnableRedisHttpSession
public class RedisHttpSessionConfig {

	public RedisHttpSessionConfig() {
		// TODO Auto-generated constructor stub
	}

}				

11.19.2. 测试 Session

			package cn.netkiller.web;

import java.util.Date;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {

	public TestController() {
		// TODO Auto-generated constructor stub
	}

	@RequestMapping("/session/set")
	@ResponseBody
	public String set(HttpSession session) {
		String key = "test";
		session.setAttribute(key, new Date());
		return key;
	}

	@RequestMapping("/session/get")
	@ResponseBody
	public String get(HttpSession session) {
		String value = (String) session.getAttribute("test").toString();
		return value;
	}

}			

keys spring:session:* 查看 Session Key

$ telnet 192.168.4.1 6379
Connecting to 192.168.4.1:6379...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
keys spring:session:*
*7
$68
spring:session:sessions:expires:a510f46f-0a2f-4649-af05-34bd750562c1
$40
spring:session:expirations:1476100200000
$40
spring:session:expirations:1476098400000
$60
spring:session:sessions:f6494a2f-591e-42ba-b381-ce2596f4046d
$60
spring:session:sessions:a510f46f-0a2f-4649-af05-34bd750562c1
$112
spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:user
$60
spring:session:sessions:627018c8-243e-43ac-87b9-fc07f130c899W

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

本周最新 10 款小程序,每一个都是精品 | 晓榜 #15

精神饱满的一天,从一顿丰盛的早餐开始,让「开动早餐」小程序帮你养成吃早餐的好习惯吧。

772
来自专栏VRPinea

2.17 VR扫描:WWDC 2017回归圣何塞,苹果旧地重游意欲何为?

3216
来自专栏数据猿

2015反腐大数据【系列六】:查处腐败问题8万起 基层干部超半数

<数据猿导读> 2015年中央纪检委监察部网站共7次集中通报“群众身边‘四风’和腐败问题”,共查处问题8万起,处理9万人,村(居)干部占被查人员比例超半数。下面...

34611
来自专栏顶级程序员

小猪佩奇到底有多火?数据和事实告诉你……

豆瓣评分高达9.2,素来挑剔的豆瓣用户可以给这样一部学龄前儿童动画片这么高的评分,足以表明用户对它的认可,说明其质量绝对过硬,要知道此前大火的《熊出没》、《喜洋...

912
来自专栏镁客网

Thin Ice神奇背心在手,不动不跑就想坐躺吃喝的懒人也能减肥!

1284
来自专栏镁客网

「测评」为信仰充值的时候到了——猫王2蓝牙收音机测评

1594
来自专栏VRPinea

新CG新武器,《源震》等你来玩!

35510
来自专栏区块之恋

EOS暴涨40%+之后1.2.3.4.

1474
来自专栏凌帅的阅读思考与实践

EOS博彩平台可能是EOS的引爆点

虽然现在币价一跌再跌,一步步逼近北境极寒之地。但区块链从不缺热闹项目,真是冰火两重天。所有热闹的项目,最后指向一个幕后黑手,EOS。

993
来自专栏互联网杂技

金融传销骗局最新名单:你周围有人卷入了吗?

文章导读 早些年,经常听到“我有朋友被骗去做传销”的故事,这些年传销看起来是越来越少了,但是其实是以一些新形式的骗局卷土而来,比如MMM,本文总结传销骗局最新最...

6446

扫码关注云+社区