SpringBoot整合Redis

109 篇文章 0 订阅
102 篇文章 0 订阅

在这里插入图片描述

??博客主页:??
欢迎关注:??点赞??收藏留言
系列专栏:??SpringBoot专栏(每日更新)
如果觉得博主的文章还不错的话,请三连支持一下博主。
??欢迎大佬指正,一起 学习!一起加油!
在这里插入图片描述

在这里插入图片描述

目录


??NoSQL解决方案

  • 常见的NoSQL解决方案
    • Redis
    • MongoES
  • 说明:上述技术通常在Linux系统中安装部署,本篇基于Windows版安装所有的软件。

??Redis简介

  • Redis是一款key-value存储结构的内存级NoSQL数据库
    • 支持多种数据存储格式
    • 支持持久化
    • 支持集群

??Redis的安装

  • windows下安装
  • 下载连接:点击下载
  • 解压
  • 打开解压后的文件,在搜索框搜索cmd,并打开
  • 输入命令:redis-server.exe ,启动失败。

在这里插入图片描述

  • 输入命令:redis-windows.conf ,还是启动失败。

在这里插入图片描述

  • 再次打开cmd

在这里插入图片描述

  • 输入以下命令
    • redis-cli
    • shutdwn
    • exit

在这里插入图片描述

  • 输入启动命令:redis-windows.conf 启动成功。

在这里插入图片描述

??Redis基本命令

  • String类型的命令
    • set key value 设置数据,如果key存在就覆盖
    • get key 获取key对应的值
  • hash类型的命令
    • hset key filed value 设置filed字段的value
    • hget key filed 获取filed字段的value
  • nil 表示为空
  • clear 清屏
  • key* 获取所有的key

在这里插入图片描述
在这里插入图片描述

??SpringBoot整合Redis

  • 新建一个Springboot项目,这里就不过多描述,专栏里都有详细的教程。

注意:导入相关依赖,勾上之后,springboot会自动导入所需的依赖。
在这里插入图片描述

  • redis依赖

    <dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-data-redis</artifactId>
    	</dependency>
    
  • RedisTemplate提供操作各种数据存储类型的接口API
    在这里插入图片描述

??测试:

package com.jkj;

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

@SpringBootTest
class Springboot10RedisApplicationTests {
	@Autowired
	private RedisTemplate redisTemplate;

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

	@Test
	void get() {
		ValueOperations ops = redisTemplate.opsForValue();
		Object value = ops.get("name");
		System.out.println(value);
	}
}

在这里插入图片描述
在这里插入图片描述
??获取hash值

package com.jkj;

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

@SpringBootTest
class Springboot10RedisApplicationTests {
	@Autowired
	private RedisTemplate redisTemplate;
	@Test
	void hset(){
		HashOperations hash = redisTemplate.opsForHash();
		hash.put("person","name","xfx");
		hash.put("person","name1","xmg");

	}

	@Test
	void hget() {
		HashOperations hash = redisTemplate.opsForHash();
		Object o = hash.get("person", "name");
		System.out.println(o);
	}

}

在这里插入图片描述

??与Redis客户端操作等效

  • StringRedisTemplate以字符串作为key和value

??测试:

package com.jkj;

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

@SpringBootTest
public class StringRedisApplication {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Test
    void get(){
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        String name = ops.get("name");
        System.out.println(name);

    }
}

??验证是否等效

  • 先修改一下name的值

在这里插入图片描述
??运行测试
在这里插入图片描述

??jedis技术

  • 导入依赖

    redis.clients jedis
  • 配置客户端属性

    spring:
    redis:
    host: localhost
    port: 6379
    client-type: jedis

  • 配置客户端专用属性

    spring:
    redis:
    host: localhost
    port: 6379
    client-type: lettucelettuce:
    pool:
    max-active: 16
    jedis:
    pool:
    max-active: 16

在这里插入图片描述

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

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值