Redis的好处与简介我就不介绍了,直接进行上手安装配置;
1、redis安装
本文采用docker去安装redis,如果直接本地安装也很方便,直接下载好安装包然后cmd窗口命令行启动就行。
- 拉取镜像
Docker pull redis:4.0
- 启动镜像
Docker run -itd --name redis-01 -p 6379:6379 #镜像id
- 放行端口
firewall-cmd --state #查看防火墙状态
systemctl start firewalld.service #启动防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent #放行端口
system restart firewalld.service #重启防火墙
firewall-cmd --reload #重新载入配置
firewall-cmd --list-all #查看已开放的端口
2、Spring boot引入
2.1、引入maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
此处引入的是官方的starter,以往大家使用jedis,可以更具个人想法改变。
2.2、基础配置
spring.redis.host=192.168.1.37
#Redis服务器连接端口
spring.redis.port=6379
#Redis服务器连接密码(默认为空)
spring.redis.password=
#连接池最大连接数(使用负值表示没有限制)
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=30000
具体详细配置根据个人需求更改。实际上springboot有默认配置,可以直接不进行配置也可以使用。
2.3、RedisService
package com.ssk.shop.bll;
/**
* redis操作接口
*/
public interface IRedisBll {
/**
* 存储数据
*/
void set(String key, String value);
/**
* 获取数据
*/
String get(String key);
/**
* 设置超期时间
*/
boolean expire(String key, long expire);
/**
* 删除数据
*/
void remove(String key);
/**
* 自增操作
* @param delta 自增步长
*/
Long increment(String key, long delta);
}
impl
package com.ssk.shop.bll.impl;
import com.ssk.shop.bll.IRedisBll;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;
@Service
public class IRedisBllImpl implements IRedisBll {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Override
public void set(String key, String value) {
stringRedisTemplate.opsForValue().set(key, value);
}
@Override
public String get(String key) {
return stringRedisTemplate.opsForValue().get(key);
}
@Override
public boolean expire(String key, long expire) {
return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
@Override
public void remove(String key) {
stringRedisTemplate.delete(key);
}
@Override
public Long increment(String key, long delta) {
return stringRedisTemplate.opsForValue().increment(key,delta);
}
}
可以对一些基础的方法进行封装,让平常一些操作更方便的去实现。
总结:redis是一个很好的缓存处理方案,项目总可以用户缓存一些常用到的信息,减轻对数据库的访问压力,对于一些秒杀方案也是可选的方案,目前为止项目中将一些权限以及对token用redis进行唯一登录控制(单token生效)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。