Linux中安装Redis、Redis实现session共享及相关问题和解决方法

一、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步,注意最后两个配置的相关修改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java.L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值