Redis学习笔记1

Redis学习笔记1

不把信息存储在本地session中了,单机部署
使用了Redis,支持分布式部署(session从redis中查找获取数据看有没有)

一、安装

1.安装

采用的环境是腾讯云服务器,Centos 环境。同时顺便在本机上安装桌面远程连接(Another Redis Desktop Manager)

2.我这里使用的是XShell连接的云服务器,然后终端输入安装Redis命令。

在这里插入图片描述

yum -y install redis

看见下图证明安装成功!
在这里插入图片描述

3.启动Redis

redis-server /etc/redis.conf &

在这里插入图片描述

4.使用命令开始使用Redis

redis-cli

在这里插入图片描述

5.设置、获取值测试是否成功可行

在这里插入图片描述

6.退出直接使用exit即可

7.设置远程终端连接

需要知道的点:redis.conf配置文件默认是在etc目录下的,可以通过使用ls进行查看。

(1)进入ect目录下

在这里插入图片描述

(2)使用vim命令打开redis.conf配置文件,按i进入编辑模式

在这里插入图片描述

(3)修改redis.conf中的“bind 127.0.0.1”注释掉或者改为0.0.0.0

在这里插入图片描述

(4)修改”protected-mode yes“把yes改为no

在这里插入图片描述

(5)如果想要修改密码可以设置,也可以不设置(可选)

按住ESC键退出编辑模式——》按 “ / “进入查找模式——》输入requirepass可以查找到如下
在这里插入图片描述

(6)退出编辑模式,按” :wq “退出,然后使用命令先关闭redis服务,在使用命令开启服务

redis-cli shutdown       ——————关闭redis服务

redis-server /etc/redis.conf &    ————————启动redis服务

(7)去查看防火墙状态是关闭还是打开

这里的话如果自己可以设置的话就不用往下看我的这个了,我下面的是自己在弄的过程中出现的错误改正
在这里插入图片描述
可以看见是运行的,这里我们需要设置Redis的端口(默认6379)添加进去允许通过防火墙
在这里插入图片描述
上面这张图是我刚开始没有确认是不是已经开启了防火墙,就直接使用命令添加,发现防火墙是没有运行的,然后我在重新允许防火墙,也是不生效的,所以我使用了 sudo systemctl start firewalld命令,再把添加防火墙命令加入,发现已经成功了。
同时去查看我们的端口是不是被添加进去,也是可以看到的
在这里插入图片描述
但是当我去远程连接时候会发现不生效,报的错误信息是连接超时。于是我就尝试了很多方法,主要原因是因为防火墙的问题。最后都尝试无果。然后我只能去重新删除重装。

二、完全卸载:

1.停止Redis服务

sudo systemctl stop redis

2.禁用Redis服务

sudo systemctl disable redis

3.卸载Redis软件包

sudo yum remove redis

4.删除Redis配置和数据文件

sudo rm /etc/redis.conf
sudo rm -r /var/lib/redis

5.清理Redis用户

sudo userdel redis
sudo groupdel redis

6.清理日志文件

sudo rm -r /var/log/redis/

7.清理启动脚本和服务文件

检查是否有残留的Redis启动脚本或服务文件,并删除它们。这些文件通常位于/etc/systemd/system//usr/lib/systemd/system/

8.重新加载systemd管理器

sudo systemctl daemon-reload

重新安装完毕,再次设置,还是一样的效果。最后我回转到了云服务器控制台。进入防火墙设置,直接把这个6379端口添加进去允许就行了,远程也能连接上了。
在这里插入图片描述
然后去测试看是否可以,发现我测试它能否正常使用的时候有报了一个错误。

Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled

这个错误通常表示Redis已经配置了保存RDB快照(Redis数据库快照),但Redis当前无法将数据持久化到磁盘,导致Redis禁用了可能会修改数据集的命令。
如何解决呢?最后在网上看到了就使用了这个方法。
使用redis-cli连接上redis,然后执行命令就可以正常使用了。

config set stop-writes-on-bgsave-error no

三、Another Redis Desktop Manager远程连接

下载安装完成
在这里插入图片描述在这里插入图片描述
可以看到已经远程连接成功了。
那如何在Spring Boot项目中使用呢?

四、使用Redis

首先一样的我们创建一个Spring Boot项目,添加依赖。
在这里插入图片描述
或者在pom.xml文件中添加如下依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

然后去到配置文件application.properties去配置Redis的连接信息
在这里插入图片描述
手动操作Redis

package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.TimeUnit;


/**
 * 根据Redis  API操作
 */
@RestController
@RequestMapping("/test")
public class TestController {

    private static final String _REDIS_KEY = "myapplication_test";

//    注入Redis(spring boot 自动装配机制例子)
    @Autowired
    private RedisTemplate redisTemplate;

    @RequestMapping("/setval")
    public void setVal(String val) {
        //常用5种数据类型 ——》得到操作Redis的类型(String)
        redisTemplate.opsForValue().set(_REDIS_KEY,val,1000, TimeUnit.SECONDS);  //后面还可以设置timeout过期时间 ,可以不设置那就不过期

    }

    @RequestMapping("/getval")
    public String getval() {
//        因为返回的是对象,强转
        return (String) redisTemplate.opsForValue().get(_REDIS_KEY);
    }
}

关键点:

在这里插入图片描述

登录将登录信息保存到Redis中

(1)pom.xml依赖中添加

<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)application.properties

#redis配置
#设置Redis的连接相关信息
spring.redis.host=写自己的
spring.redis.port=6379
spring.redis.password=
#有16个库,不写的话就是第0个,这里用第一个
spring.redis.database=1
spring.session.store-type=redis
#session 过期时间
server.servlet.session.timeout=1800
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=spring:session

(3)因为我之前已经写好了用户登录信息保存到Session中的,所以这里的话就可以不用再去设置写了,直接就完成了。可以在客户端中查看
在这里插入图片描述
当我们把这里面的session删除后,那么去刷新页面就会发现当前用户处于未登录状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小哈不会玩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值