1.介绍
如何通过springboot连接redis呢(至于这点博主也是踩过很多坑),接下来我带大家进行连接吧。
2.如何连接
2.1.首先我们要在linux上面查看自己的防火墙是否处于关闭状态(基于如CentOS 7及以上、Fedora、RHEL 7及以上)
使用命令 systemctl status firewalld (非root用户需要在命令的前面加上sudo 以下命令都需如此)
防火墙默认是属于开启状态(绿色字体)
通过外部进行连接必须要关闭linux中的防火墙
输入命令 systemctl stop firewalld
执行完此命令后再输入命令 systemctl status firewalld 来查看防火墙状态
此时linux中的防火墙已经被关闭
第一步到这已经完成
2.在redis的配置文件中注释掉 bind 127.0.0.1 -::1(该配置默认只能是本机访问 ),将protected-mode yes修改为protected-mode no。
首先进入到redis配置文件所在的目录中(我的配置文件是在myredis目录中)
使用命令vim redis.conf (这个为自己配置文件的名字) 进入配置信息中进行修改
输入命令 /bind 回车
往下翻找到以 bind 127.0.0.1 -::1 开头的(我这里是已经修改成0.0.0.0并且注释掉了)
然后再输入命令 /protected-mode yes 直接将yes修改为no
最后输入命令 :wq
所有配置修改完成并保存后要重新启动linux服务器
2.2.最后通过springboot集成redis
导入redis的jar包(此处所用maven构建工具)
yml文件中输入该配置(有些可不写)
host主机地址为linux服务器的地址(如何查看自己linux ip地址呢)
在linux服务器中输入命令 ifconfig
192.168.111.130即为linux的ip地址
redis默认为6379(此处不做修改)
密码为自己所修改的密码(redis默认为无密码)
然后在idea中创建一个类写入序列化的配置
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
// 设置key和value的序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer()); // 设置key的序列化器为StringRedisSerializer
redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); // 设置value的序列化器为JdkSerializationRedisSerializer
redisTemplate.setHashKeySerializer(new StringRedisSerializer()); // 设置hash key的序列化器为StringRedisSerializer
redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer()); // 设置hash value的序列化器为JdkSerializationRedisSerializer
redisTemplate.afterPropertiesSet(); // 初始化RedisTemplate
return redisTemplate; // 返回配置好的RedisTemplate
}
}
最后一步进行测试
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
@SpringBootTest
class Redis7StudyApplicationTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads() {
stringRedisTemplate.opsForValue().set("name1","redis");
System.out.println(stringRedisTemplate.opsForValue().get("name1"));
}
}
测试结果为
一定要在linux上开启自己的redis服务 否者会出现连接不上redis的报错
在linux上使用命令 redis-server /myredis/redis7.conf(这里的 /myredis/redis7.conf 为我自己redis配置文件所在的目录里 读自己redis所在的配置文件即可)
到此都已经完成 感谢大家的观看