一、安装
1. 下载安装包
百度云链接:https://pan.baidu.com/s/1XLoTewKdkAiGd8gowQvKlw
提取码:wtyi
里面有Tomcat,JDK8,Nginx,Redis的安装包
2. 将安装包放入服务器
使用Xftp将文件放置在服务器的home文件夹下。
3. 安装
使用XShell连接服务器,进入安装包放置目录
将redis安装包移动到opt文件夹下
mv redis-6.2.6.tar.gz /opt
进入opt文件夹,并解压安装包
tar -zxvf redis-6.2.6.tar.gz
然后进入解压后的文件夹
安装redis前,必须确保安装了gcc。(yum安装必须有网)
yum install gcc-c++
然后在redis的目录里执行make命令就安装好了。
make
redis的默认安装目录在usr/local/bin里
4. 配置
在这目录先新建一个文件夹,用于存放配置文件。
mkdir myconfig
首先在redis的解压目录里可以看到一个redis.conf文件,这个是redis的配置文件,启动redis需要用到它,我们将它复制一份到usr/local/bin/myconfig里。
想要在本地也能访问到redis,共有这几处需要修改
- bind 设置为 0.0.0.0
- protected-mode 设置为no
- daemonize 设置为yes (后台运行)
- 开放防火墙6379端口
yum install firewalld systemd -y #安装防火墙
firewall-cmd --list-ports #查看开放情况
firewall-cmd --zone=public --add-port=6379/tcp --permanent #开放端口
systemctl reload firewalld #重启防火墙
5. 使用
在usr/local/bin目录下,执行此命令启动服务
redis-server myconfig/redis.con#用刚才的配置文件启动
同样在usr/local/bin目录下,执行此命令启动客户端测试
redis-cli -p 6379
使用完成,本地代码需要访问可看Springboo整合Redis文章。
二、SpringBoot整合Redis
1. 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2. 配置
在application.yml中配置
spring:
redis:
host: 192.168.0.0#IP
port: 6379#端口号
password: 123456#Redis密码
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 500
min-idle: 0
lettuce:
shutdown-timeout: 0
3. 自定义RedisTemplate
在使用redis时,要存入redis的对象或者字符都要序列化,防止乱码。新建一个配置类加上@Configuration注解,利用方法返回一个RedisTemplate,并加上@Bean注解,将它放入Spring容器。
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String,Object> redisTemplate=new RedisTemplate<String,Object>();
redisTemplate.setConnectionFactory(factory);
//将Key序列化
redisTemplate.setKeySerializer(new StringRedisSerializer());
//将Value序列化
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
return redisTemplate;
}
}
4. 使用
已经自定义了RedisTemplate,将它注入,就可以直接使用了。
@SpringBootTest
class SpringbootApplicationTests {
@Autowired
RedisTemplate<String,Object> redisTemplate;
@Test
void contextLoads() throws Exception {
redisTemplate.opsForValue().set("name","张三");
System.out.println(redisTemplate.opsForValue().get("name"));
}
}
运行效果