成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SpringBoot集成Redis

kuangcaibao / 2507人閱讀

摘要:集成文章目錄集成概述測試自定義概述是什么,即遠(yuǎn)程字典服務(wù)。是一個開源的使用語言編寫支持網(wǎng)絡(luò)可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。與一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。

SpringBoot集成Redis

1、概述

Redis是什么?

Redis(Remote Dictionary Server ),即遠(yuǎn)程字典服務(wù)。

是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。

與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步。

Redis能該干什么?

  1. 內(nèi)存存儲、持久化,內(nèi)存是斷電即失的,所以需要持久化(RDB、AOF)
  2. 高效率、用于高速緩沖
  3. 發(fā)布訂閱系統(tǒng)
  4. 地圖信息分析
  5. 計時器、計數(shù)器(eg:瀏覽量)
  6. … …

特性

  1. 多樣的數(shù)據(jù)類型

  2. 持久化

  3. 集群

  4. 事務(wù)


2、測試Redis

SpringBoot操作數(shù)據(jù),Spring-Data、 jbdc、redis… …

SpringData與SpringBoot齊名的項目!

說明:在SpringBoot2.x之后,原來使用的jedis被替換為lettuce

jedis:采用的直連,多個線程操作的話,是不安全的,如果想要避免不安全的,需使用jedis pool連接池!像BIO模式

lettuce:采用netty,實例可以再多個線程中進(jìn)行共享,不存在線程不安全的情況!可以減少線程數(shù)據(jù),更像NIO模式

新建一個項目

注意:

查看底層

源碼分析:

@Bean@ConditionalOnMissingBean(  //如果未注入組件條件,我們自己可以定義一個redisTemplate來替換這個默認(rèn)的    name = {"redisTemplate"})public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {    //默認(rèn)的 RedisTemplate 沒有過多的設(shè)置 redis 都是需要序列化的  !    //兩個泛型都是 Object  Object的類型,我們往后使用需要強(qiáng)制轉(zhuǎn)換    RedisTemplate<Object, Object> template = new RedisTemplate();    template.setConnectionFactory(redisConnectionFactory);    return template;}@Bean@ConditionalOnMissingBean  //由于String 是redis 中最常用的類型  所有說多帶帶提出來一個bean!public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {    StringRedisTemplate template = new StringRedisTemplate();    template.setConnectionFactory(redisConnectionFactory);    return template;}

1、導(dǎo)入依賴

2、配置連接

# SpringBoot 所有的配置類 都有一個自動配置類  RedisAutoConfiguration# 自動配置類都會綁定一個 properties 配置文件  RedisProperties#配置 redisspring.redis.host=127.0.0.1spring.redis.port=6379spring.redis

3、測試!

package com.kk;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.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate;@SpringBootTestclass Redis01SpringbootApplicationTests {    @Autowired    private RedisTemplate redisTemplate;    @Test    void contextLoads() {        /*        redisTemplate        opsForValue  操作字符串的  類似String        opsForList  操作List  類似List        opsForSet        opsForHash        opsForZSet        opsForGeo        opsForHyperLogLog        除了基本的操作 ,我們常用的方法都可以直接通過redisTemplate 比如事務(wù)和基本的CRUD         */        //獲取redis的連接對象//        RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();//        connection.flushDb();//        connection.flushAll();        redisTemplate.opsForValue().set("kk1","kk2");        System.out.println(redisTemplate.opsForValue().get("kk1"));    }}

3、自定義redisTemplate

首先先建一個實體類,測試

User類

package com.kk.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.stereotype.Component;import java.io.Serializable;@Component@Data@AllArgsConstructor@NoArgsConstructor//在企業(yè)中,我們所有的pojo都會序列化public class User implements Serializable {    private String name;    private int age;}

測試:

@Testpublic void test() throws JsonProcessingException {    //真實的開發(fā)一般都使用json來傳遞對象    User user = new User("kk", 17);    String jsonUser = new ObjectMapper().writeValueAsString(user);//這樣就變成了一個json對象了    redisTemplate.opsForValue().set("user",jsonUser);    System.out.println(redisTemplate.opsForValue().get("user"));}

r = new ObjectMapper().writeValueAsString(user);//這樣就變成了一個json對象了
redisTemplate.opsForValue().set(“user”,jsonUser);
System.out.println(redisTemplate.opsForValue().get(“user”));
}

==注意:如果不在User類中實現(xiàn)序列化,它會報錯==

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/122427.html

相關(guān)文章

  • 市長信箱郵件查詢服務(wù): SpringBoot集成Docker上Redis服務(wù)

    摘要:集成上服務(wù)在我的應(yīng)用中希望能使用一些的特性比如這樣的數(shù)據(jù)結(jié)構(gòu)如果能方便的在開發(fā)環(huán)境中使用起來就好了如何集成呢這里依然使用和來幫忙通過使用我們就能快速的部署好服務(wù)而通過使用我們能快速的把集成進(jìn)我們的服務(wù)并能使用提供的模板方法方便的調(diào)用的使用快 SpringBoot集成Docker上Redis服務(wù) 在我的應(yīng)用中, 希望能使用一些redis的特性:比如zset這樣的數(shù)據(jù)結(jié)構(gòu),如果能方便的在開...

    lanffy 評論0 收藏0
  • 關(guān)于springboot集成redis及關(guān)于redis的Key 亂碼問題

    摘要:一在文件中引入二配置地址等配置數(shù)據(jù)庫索引默認(rèn)為服務(wù)器地址服務(wù)器連接端口服務(wù)器連接密碼默認(rèn)為空連接池最大連接數(shù)使用負(fù)值表示沒有限制連接池最大阻塞等待時間使用負(fù)值表示沒有限制連接池中的最大空閑連接連接池中的最小空閑連接連接超時時 一、在pom文件中引入redis org.springframework.boot spring-boot-starter-redis ...

    RancherLabs 評論0 收藏0

發(fā)表評論

0條評論

kuangcaibao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<