windows下Springboot部署redis

windows下Springboot部署redis

一、在windows下安装redis

在windows下安装其实并不是安装,下载下来直接解压,下面给出一个百度云下载链接。。

链接:https://pan.baidu.com/s/1Vsha5GkBCa5rHvlFy5h3wg 密码:4j8v   亲自测试,还不错

1,下载下来,解压后图片

2,修改redis.windows.conf文件,设置maxmemory 大小 为1024000000

3,设置redis密码 requirepass

4,设置完成后保存文件,启动redis

redis-server.exe redis.windows.conf

5,启动成功,打开任务管理器

正常情况应该是正在运行,如果没有启动,你就自己右键运行一下吧。。。尴尬

6,将将redis加入到windows的服务中

redis-server –service-install redis.windows.conf –loglevel verbose

进行到这里也算是完成了第一步

二、在Springboot项目中部署redis

pom文件中引入Springboot结合redis相关的依赖

	<properties>
		<spring-boot-starter-redis-version>1.3.2.RELEASE</spring-boot-starter-redis-version>
	</properties>
<!-- Spring Boot Reids 依赖 -->
		<dependency>    
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-redis</artifactId>
			<version>${spring-boot-starter-redis-version}</version>
		</dependency>

在  application.properties增加redis配置

#redis Config
spring.redis.database=0       #数据库索引,默认为0    
spring.redis.host=127.0.0.1   #服务器地址
spring.redis.port=6379        #服务器连接端口号
spring.redis.password=123456  #服务器连接密码
spring.redis.pool.max-active=8#连接池最大连接数
spring.redis.pool.max-wait=-1 #连接池最大阻塞等待时间(负值表示没有限制)
spring.redis.pool.max-idle=8  #连接池最大空闲时间
spring.redis.pool.min-idle=0  #连接池最小连接时间
spring.redis.timeout=0        #连接超时时间

在接口实现类中添加以下代码,也是缓存实现代码

@SuppressWarnings("unchecked")
	@Override
	public List<SigninDO> listAllSigninDOByWorkId(String workId) {
		// TODO 自动生成的方法存根
		
		String key=workId;
		ValueOperations<String,List<SigninDO>> operations = redisTemplate.opsForValue();
		
		boolean haskey=redisTemplate.hasKey(key);
		List <SigninDO>list=new ArrayList<SigninDO>();
		System.out.println(haskey);
		if(haskey){
			List<SigninDO> listCache=operations.get(key);
			System.out.println("==========从缓存中获得数据=========");
			for (SigninDO signinDO : listCache) {
				System.out.println(signinDO.getId());
				System.out.println(signinDO.getWorkId());
				System.out.println(signinDO.getStartTime());
				System.out.println(signinDO.getEndTime());
				System.out.println(signinDO.getEnjoin());
			}
			
            System.out.println("==============================");
            return listCache;
		}else{
			List<SigninDO> listNoCache=signinDAO.listAllSigninDOByWorkId(workId);
			
			System.out.println("==========从数据表中获得数据=========");
            operations.set(key, listNoCache);
            System.out.println("==============================");
            return listNoCache;
            
		}
	
		
	}

}

简单描述一下原理就是,第一次查询数据库,顺便就把数据放在了redis缓存中,以(key,value)的形式存放。在这里面key值是存储ID值,value值是存放的对象,当下一次查询的时候,redis数据库中已经有这一条数据,当有相同的key值进来访问的时候,可以直接从redis数据库中直接查询到相应的对象数据(在这里是List集合)。

第一次请求

第二次请求:

更新数据库时候更新缓存(即删除缓存,重新读取)

@SuppressWarnings("unchecked")
	@Override
	public int updateCache(SigninDO signin){
		
		  int result = signinDAO.updateById(signin);
		  if(result>0){
			  String key=signin.getWorkId();
			  if(redisTemplate.hasKey(key)){
				  redisTemplate.delete(key);
				  return 0;
			  }
		  }
		  return 1;
	}

本文章能够做出来也是参考了一位博主的文章

https://blog.youkuaiyun.com/u012343297/article/details/78840862     感谢。。

 

 

不懂在下面留言即可

 

欢迎订阅关注公众号(JAVA和人工智能)

                                       

                                                           获取更多免费书籍、资源、视频资料

 

                                    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA和人工智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值