目录
- Redis 官方网站:http://redis.io
- Redis中文官方网站:http://redis.cn/
一、Linux中安装Redis
1、安装wget命令并下载Redis压缩包
选择Redis6.2.7版本
下载安装wget
yum -y install wget
使用wget下载单个文件
从网络下载一个文件并保存在当前目录
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
使用wget-o下载并以不同的文件名保存
wget -O redis627.tar.gz https://download.redis.io/releases/redis-6.2.7.tar.gz
使用wget -limit -rate 限速下载(执行wget时,默认会占用全部可能的带宽下载,当准备下载一个大文件,而你还需要下载其他文件时就有必要限速了)
wget --limit-rate=300K https://download.redis.io/releases/redis-6.2.7.tar.gz
2、下载安装最新版的gcc编译器
安装C 语言的编译环境
yum -y install gcc gcc-c++ kernel-devel
测试gcc版本
gcc --version
3、解压压缩包并进入解压的目录
tar -xzvf redis-6.2.7.tar.gz
cd redis-6.2.7/
4、编译下载的源码
make
5、可能出现的错误以及解决办法
如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
此时,之下以下命令后再重新进行编译
make distclean
6、编译安装
make install
cd src && make install
make[1]: Entering directory ‘/opt/redis-6.2.7/src’
CC Makefile.dep
Hint: It’s a good idea to run ‘make test’ 😉
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
make[1]: Leaving directory ‘/opt/redis-6.2.7/src’
7、进入安装目录
默认的安装目录为:/usr/local/bin
cd /usr/local/bin/
redis-benchmark # 性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof -> redis-server # 修复有问题的AOF文件
redis-check-rdb -> redis-server
redis-cli # 客户端,操作入口
redis-sentinel -> redis-server # Redis集群使用
redis-server # Redis服务器启动命令
8、前台启动(不推荐)
./redis-server
9、修改配置文件并在后台启动
拷贝一份redis.conf 到其他目录,如/myredis
cp /opt/redis-6.2.7/redis.conf /myredis/
修改redis.conf(259行)文件将里面的daemonize no 改成 yes,让服务在后台启动
修改redis.conf(903行)文件将里面的requirepass改成自己的密码,此密码为以后客户端验证身份使用
修改redis.conf(75行)文件里面的bind,修改为指定的IP地址即为只允许该IP地址访问,注释即为允许所有主机访问
修改redis.conf(75行)文件里面的protected-mode改为no,同意远程连接访问
注意:以上后两个设置为在Windows中测试Redis实现session共享做准备,如在统一主机上,不设置也可以正常启动
在后台启动Redis
./redis-server /myredis/redis.conf
10、客户端连接并测试
客户端远程访问
./redis-cli
验证身份
auth 123456
测试验证
ping
如果连接正常,服务器响应为pong
11、Redis关闭
在客户端连接中输入一下命令即可
shutdown
到这里Redis在Linux中的安装就结束了,下面我们将进行SpringBoot集成Redis实现session的共享
二、SpringBoot集成Redis实现session的共享
1、在SpringBoot项目中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2、配置Redis访问地址、端口号和密码
spring.redis.host=Redis所在主机IP地址
spring.redis.port=6379
spring.redis.password=123456
3、创建接口
@RestController
@RequestMapping(value = "/admin/v1")
public class QuickRun {
/**
* 得到请求的地址
* @param request 请求
* @return 请求的全路径
*/
@RequestMapping(value = "/first", method = RequestMethod.GET)
public Map<String, Object> firstResp(HttpServletRequest request) {
Map<String, Object> map = new HashMap<>();
request.getSession().setAttribute("request Url", request.getRequestURL());
map.put("request Url", request.getRequestURL());
return map;
}
/**
* 获得当前访问的session
* @param request 请求
* @return 当前访问的session
*/
@RequestMapping(value = "/sessions", method = RequestMethod.GET)
public Object sessions(HttpServletRequest request) {
Map<String, Object> map = new HashMap<>();
map.put("sessionId", request.getSession().getId());
map.put("message", request.getSession().getAttribute("map"));
return map;
}
}
4、启动并测试
使用API接口测试工具访问部署在两个Tomcat上的接口
第一个Tomcat服务器的访问地址
第一个Tomcat服务器的访问地址
第一个Tomcat服务器的session id
第二个Tomcat服务器的session id
如此,我们已经完成了Redis实现的session共享
5、相关问题及解决方案
(1)如果在启动时无法连接Redis
可能的原因:
配置文件中的IP地址或端口号错误
部署Redis的主机防火墙没有关闭或Redis的端口号没有开放
在Redis的配置文件没有取消绑定的IP地址或没有允许远程联系
解决方法:
①检查配置文件中的IP地址和端口号是否和部署Redis主机的IP地址、端口号是否一致
②关闭防火墙或打开Redis的端口
关闭防火墙
systemctl stop firewalld
开启防火墙
systemctl start firewalld
开放指定端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
关闭指定接口
firewall-cmd --zone=public --remove-port=6379/tcp --permanent
重新加载防火墙配置
firewall-cmd --reload
③回看安装Redis中的第9步,注意最后两个配置的相关修改