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 相关文章推荐
详解RedisTemplate下Redis分布式锁引发的系列问题
Apr 27 Redis
使用Redis实现秒杀功能的简单方法
May 08 Redis
redis实现排行榜功能
May 24 Redis
redis实现共同好友的思路详解
May 26 Redis
redis客户端实现高可用读写分离的方式详解
Jul 04 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
Redis 持久化 RDB 与 AOF的执行过程
Nov 07 Redis
Redis Stream类型的使用详解
Nov 11 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
redis lua限流算法实现示例
Jul 15 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 ci框架验证码实例分析
2013/06/26 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
Python里隐藏的“禅”
2014/06/16 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
基于python检查矩阵计算结果
2020/05/21 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
给领导的致歉信范文
2014/01/13 职场文书
企业管理培训感言
2014/01/27 职场文书
区域销售大会开幕词
2016/03/04 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
golang interface判断为空nil的实现代码
2021/04/24 Golang
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS