springboot使用Redis作缓存使用入门教程


Posted in Redis onJuly 25, 2021

1.依赖与数据库设置

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
spring.redis.database=0  

spring.redis.host=localhost

spring.redis.port=6379  

spring.redis.password=123 #自己的密码

spring.redis.lettuce.pool.max-active=8

spring.redis.lettuce.pool.max-wait=-1

spring.redis.lettuce.pool.max-idle=8

spring.redis.lettuce.pool.min-idle=0

2.redis和session配置

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport{
	
	@Bean
	public KeyGenerator keyGenerator() {
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                StringBuilder sb = new StringBuilder();
                sb.append(target.getClass().getName());
                sb.append(method.getName());
                for (Object obj : params) {
                    sb.append(obj.toString());
                }
                return sb.toString();
            }
        };
    }
}

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)
public class SessionConfig {
}

3.实体与controller层

public class User implements Serializable {

	private static final long serialVersionUID = 1L;
	private Long id;
	private String userName;
	private String password;
	private String email;
	private String nickname;
	private String regTime;

	public User() {
		super();
	}
	public User(String email, String nickname, String password, String userName, String regTime) {
		super();
		this.email = email;
		this.nickname = nickname;
		this.password = password;
		this.userName = userName;
		this.regTime = regTime;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getRegTime() {
		return regTime;
	}

	public void setRegTime(String regTime) {
		this.regTime = regTime;
	}

	@Override
	public String toString() {
		return "User{" +
				"id=" + id +
				", userName='" + userName + '\'' +
				", password='" + password + '\'' +
				", email='" + email + '\'' +
				", nickname='" + nickname + '\'' +
				", regTime='" + regTime + '\'' +
				'}';
	}
}
@RestController
public class UserController {

    @RequestMapping("/getUser")
    @Cacheable(value="user-key")
    public User getUser() {
        User user=new User("aa@126.com", "aa", "aa123456", "aa","123");
        System.out.println("测试缓存");
        return user;
    }


    @RequestMapping("/uid")
    String uid(HttpSession session) {
        UUID uid = (UUID) session.getAttribute("uid");
        if (uid == null) {
            uid = UUID.randomUUID();
        }
        session.setAttribute("uid", uid);
        return session.getId();
    }
}

4.运行

@SpringBootApplication
public class RedisApplication {

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

运行结果:

springboot使用Redis作缓存使用入门教程

springboot使用Redis作缓存使用入门教程

springboot使用Redis作缓存使用入门教程

同时也可以用专门的图形界面工具查看:

springboot使用Redis作缓存使用入门教程

到此这篇关于springboot使用Redis作缓存使用入门的文章就介绍到这了,更多相关springboot Redis缓存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
Redis持久化与主从复制的实践
Apr 27 Redis
浅谈Redis的几个过期策略
May 27 Redis
聊一聊Redis与MySQL双写一致性如何保证
Jun 26 Redis
Redis主从配置和底层实现原理解析(实战记录)
Jun 30 Redis
基于Redis的List实现特价商品列表功能
Aug 30 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
Grafana可视化监控系统结合SpringBoot使用
Apr 19 Redis
Redis全局ID生成器的实现
Jun 05 Redis
Redis实现短信验证码登录的示例代码
Jun 14 Redis
Redis中一个String类型引发的惨案
缓存替换策略及应用(以Redis、InnoDB为例)
浅谈redis整数集为什么不能降级
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 #Redis
Redis源码阅读:Redis字符串SDS详解
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Redis做数据持久化的解决方案及底层原理
Jul 15 #Redis
You might like
解析php时间戳与日期的转换
2013/06/06 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
js form action动态修改方法
2008/11/04 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
python字典多条件排序方法实例
2014/06/30 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
如何理解Python中的变量
2020/06/01 Python
python打开音乐文件的实例方法
2020/07/21 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
Shell脚本如何向终端输出信息
2014/04/25 面试题
公司活动总结范文
2014/07/01 职场文书
圆明园观后感
2015/06/03 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android