springboot整合Redis

springboot整合Redis

一、安装redis

到redis官网下载 https://redis.io/download

springboot整合Redis_第1张图片

二、启动redis

在redis的目录下输入cmd(Windows环境下)

springboot整合Redis_第2张图片

执行 redis-server.exe redis.windows.conf 开启

三、在springboot中整合

首先在破pow.xml导入坐标(这里不需要写版本,spring中已经定义了他的版本)

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-data-redisartifactId>
dependency>

配置相关的配置

# redis 导入相应的坐标后,进行配置,而它本身有默认配置,注意看自己的redis是否配置了密码
spring:
  redis:
    host: localhost
    port: 6379
    password: 12356

防止链接失败,需要在redis.windows.conf做一下配置

先看一下是否有密码

在这里插入图片描述

protected-mode yes 改成 protected-mode no

吧bind 127.0.0.1这一行注释掉

四、测试set和get

1、用RedisTemplate

package com.lyd;

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.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;

@SpringBootTest
class Springboot16RedisApplicationTests {

	@Autowired
	private RedisTemplate redisTemplate;

	@Test
	void set() {
		ValueOperations ops = redisTemplate.opsForValue();
		ops.set("age",41);
	}

	@Test
	void get() {
		ValueOperations ops = redisTemplate.opsForValue();
		Object age = ops.get("age");
		System.out.println(age);
	}
    
    //	操作哈希结构
	@Test
	void hset() {
		HashOperations ops = redisTemplate.opsForHash();
		ops.put("info","a","abc");
	}

	@Test
	void hget() {
		HashOperations ops = redisTemplate.opsForHash();
		Object val = ops.get("info","a");
		System.out.println(val);
	}

}

2、用StringRedisTemplate

这样springboot就能读取redis的客户端

@SpringBootTest
public class StringRedisTemplateTest {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;//这样springboot就能读取redis的客户端
    @Test
    void get() {
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        String name = ops.get("name");
        System.out.println(name);
    }
}

springboot操作Redis客户端实现技术切换(jedis,默认lettuce)

老样子,首先要导入相关坐标

<dependency>
	<groupId>redis.clientsgroupId>
	<artifactId>jedisartifactId>
dependency>

做配置,如果没配置,就是默认lettuce

client-type: jedis

Redis
lettcus与jedis区别
  • jedis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响。
  • lettcus基于Netty框架进行与Redis服务器连接,底层设计中采用StatefulRedisConnection。StatefulRedisConnection自身是线程安全的,可以保障并发访问安全问题,所以-一个连接可以被多线程复用。当然lettcus也支持多连接实例-一起工作。

你可能感兴趣的:(SpringBoot,redis,spring,boot,java)