springboot整合Redis(单机后面会连载集群)
整合环境:VMware Workstation Pro15 linux8.0 redis4.0.10
redis的安装
1.首先执行linux的命令下载redis
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
若提示未找到命令,则先执行如下的命令安装wget然后再下载redis
yum install wget
2.安装redis
首先解压下载文件,然后进入解压文件进行编译,执行下面的4条命令:
tar -zxvf redis-4.0.10-tar.gz'
cd redis-4.0.10
make MALLOC=libc
make install
3.配置redis的参数
安装redis完成之后需要修改redis.conf配置文件下的修改地方
daemonize yes
#bind 127.0.0.1
requirepass 123456
protected-mode no
配置解释:
第1行配置表示允许redis在后台启动。
第2行配置表示连接redis实例地址,默认情况下只允许本地连接,注释掉以后允许外网连接redis。
第3行配置表示登录redis实例需要的登录密码。
第4行配置表示由于有了第3行配置的登录密码,因此可以关闭保护模式。
4.配置centOS
为了能够远程连接上redis,还需要关闭centOS防火墙,执行如下命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
第1行表示关闭防火墙,第2行表示禁止防火墙开机启动。
创建springboot项目
1.创建项目先添加pom.xml的依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Rdeis引用包 去除默认的Lettuce 引入jedis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入Jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
本人常用jedis工具所以依赖排除lettuce,重新添加jedis的依赖包。
2.配置redis
在application.properties中配置连接信息
#redis的参数配置
#配置的是redis的数据库编号 redis提供16个database 编号为0-15
spring.redis.database=0
#配置的是redis的实例地址
spring.redis.host=192.168.1.1
#配置的是redis的端口
spring.redis.port=6379
#配置的是redis的数据库密码
spring.redis.password=123456
#redis连接池最大连接数T
spring.redis.jedis.pool.max-active=8
#redis连接池中的最大空闲连接数
spring.redis.jedis.pool.max-idle=8
#redis连接池中的最小空闲连接数
spring.redis.jedis.pool.min-idle=0
#redis表示连接池的最大阻塞等待时间,默认为-1,表示没有限制
spring.redis.jedis.pool.max-wait=-1ms
3.创建一个实体类
public class User implements Serializable {
private String name;
private int age;
private String hobby;
//省略get/set方法
4.创建controller进行测试
@RestController
public class UserTestController {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@GetMapping("/test")
public void getUser(){
ValueOperations<String,String> ops1 = stringRedisTemplate.opsForValue();
ops1.set("name","owen");
String name = ops1.get("name");
System.out.println("打印获取的name----------->" + name);
ValueOperations ops2 = redisTemplate.opsForValue();
User user = new User();
user.setName("jack");
user.setAge(18);
user.setHobby("篮球,足球,赛车");
ops2.set("user",user);
User users = (User) ops2.get("user");
System.out.println(users);
}
控制日志输入数据为:
打印获取的name----------->owen
User{name='jack', age=18, hobby='篮球,足球,赛车'}
自己整理的一些经验,望能帮助到你。
整合途中的一些注意事项:
1.linux下进行redis.conf配置文件修改先备份。
cp ./redis.4.0.10/redis.conf ./ "./"是代表当前目录的意思
先备份一次,随时修改出问题了 可以复制备份的配置文件过去替换,修改配置文件redis容易出错!这个请大家注意