Springboot整合Redis和Linux安装Redis存在的问题

想要使用Redis,首先就要先安装Redis,一般情况下,都是安装在Linux服务器上的。首先从官网进行下载Redis的压缩包,Redis官网点击Download按钮,之后网下滑,安装提示进行下载在这里插入图片描述在这里插入图片描述
如果不想使用官网可以进入中文网Redis中文网
在这里插入图片描述
直接下载即可,文件也就几M大小,速度很快。之后通过Xftp或者宝塔面板将Redis文件上传到Linux服务器上或者虚拟机(虚拟机只能使用Xftp,不能使用宝塔),一般上传在opt目录下,可以根据个人喜好存放,没有要求。进入到上传的文件目录,使用命令tar -zxvf redis-6.0.6.tar.gz -C /opt/ 将redis解压到opt目录,当日也可以直接解压在当前目录tar -zxvf redis-6.0.6.tar.gz,影响不大
在这里插入图片描述
之后进入解压的redis目录,输入gcc -v检查c语言需要的编译环境版本是否合格,CentOS7默认的gcc版本过低,不能安装Redis,因此需要升级本版在这里插入图片描述
这里我的系统是CentOS8,默认是gcc 8版本,因此可以直接安装,如果不是,则需要进行升级gcc,可以输入yum install gcc-c++ 会自动安装,如果安装之后版本还是过低(Redis6.0需要gcc版本5.3以上),则需要进行升级,依次输入下面的命令

#升级gcc
yum -y install centos-release-scl 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
#让文件永久生效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

在此输入gcc -v 版本升级成功,在Redis目录下输入make命令,由于第一次安装有点慢,当安装完成之后,在输入make install redis安装成功,拷贝一份redis.config文件到/usr/local/bin,防止自己修改文件之后出现问题无法回退 (cp redis.config /usr/local/bin/),拷贝之后输入 vim redis.config ,在输入 /daemonize ,找到之后,输入i 进行修改
在这里插入图片描述
在命令模式下输入/127
在这里插入图片描述
到这里基本配置已经完成,按下ESC按钮,输入:wq保存退出即可,进入到目录 /usr/local/bin下,输入 redis-server redis.config启动redis服务,检查一下是否启动成功,输入ps -ef|grep redis
在这里插入图片描述
到这里已经启动成功,输入redis-cli -h 127.0.0.1 -p 6379
在这里插入图片描述
默认是没有密码的,如果你是在虚拟机调试也没有必要设置密码,config set requirepass abcdefg #设置密码 abcdefg config get requirepass #查看设置的密码在这里插入图片描述
这里没有设置密码所有没有显示,到此redis已经按照完成。
这里还需要开启端口,否则外部计算机不能访问。

#查询端口是否开放
firewall-cmd --query-port=6379/tcp
#添加端口
firewall-cmd --add-port=6379/tcp --permanent
#重新加载
firewall-cmd --reload

如果你的电脑是云服务器,则需要自己去服务器添加防火墙规则。
接下来是Springboot整合redis:
在pom文件添加

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

在springboot配置文件中设置(这里是yaml格式)

redis:
    host: 主机地址
    port: 6379 #redis端口,一般是6379,需要服务器开发端口
    password: 123456 #redis的访问密码,如果没有设置,可以不写
    lettuce:
      pool:
        max-idle: 3
        min-idle: 0
        max-active: 5
        max-wait: -1

编写配置类自定义RedisTemplate模板,主页用于序列化解析对象,防止服务器端乱码,也可不写。

@Configuration
public class MyRedisTemplate {

    @Bean
    public RedisTemplate<String,Object> template(RedisConnectionFactory factory){
        RedisTemplate<String,Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_ARRAY);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
//        对key序列化
        template.setKeySerializer(stringRedisSerializer);
        template.setHashKeySerializer(stringRedisSerializer);
//        对value序列化
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
}

这里可以进行测试一下

//这里是单元测试
	@Autowired
    @Qualifier("template")
    private RedisTemplate template;

    @Test
    public void test1(){
        template.opsForValue().set("tel2",new SMSCode("tel", 83745),300, TimeUnit.SECONDS);//SMSCode需要实现接口 Serializable
        System.out.println(template.opsForValue().get("tel2"));
    }

到此Linux安装Redis和Springboot整合Redis完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值