摘要:集成文章目錄集成概述測試自定義概述是什么,即遠程字典服務。是一個開源的使用語言編寫支持網(wǎng)絡可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。與一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。
Redis是什么?
Redis(Remote Dictionary Server ),即遠程字典服務。
是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。
與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現(xiàn)了master-slave(主從)同步。
Redis能該干什么?
特性
多樣的數(shù)據(jù)類型
持久化
集群
事務
…
SpringBoot操作數(shù)據(jù),Spring-Data、 jbdc、redis… …
SpringData與SpringBoot齊名的項目!
說明:在SpringBoot2.x之后,原來使用的jedis被替換為lettuce
jedis:采用的直連,多個線程操作的話,是不安全的,如果想要避免不安全的,需使用jedis pool連接池!像BIO模式
lettuce:采用netty,實例可以再多個線程中進行共享,不存在線程不安全的情況!可以減少線程數(shù)據(jù),更像NIO模式
新建一個項目
注意:
查看底層
源碼分析:
@Bean@ConditionalOnMissingBean( //如果未注入組件條件,我們自己可以定義一個redisTemplate來替換這個默認的 name = {"redisTemplate"})public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { //默認的 RedisTemplate 沒有過多的設置 redis 都是需要序列化的 ! //兩個泛型都是 Object Object的類型,我們往后使用需要強制轉換 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、導入依賴
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 比如事務和基本的CRUD */ //獲取redis的連接對象// RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();// connection.flushDb();// connection.flushAll(); redisTemplate.opsForValue().set("kk1","kk2"); System.out.println(redisTemplate.opsForValue().get("kk1")); }}
首先先建一個實體類,測試
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)序列化,它會報錯==
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122427.html
摘要:集成上服務在我的應用中希望能使用一些的特性比如這樣的數(shù)據(jù)結構如果能方便的在開發(fā)環(huán)境中使用起來就好了如何集成呢這里依然使用和來幫忙通過使用我們就能快速的部署好服務而通過使用我們能快速的把集成進我們的服務并能使用提供的模板方法方便的調(diào)用的使用快 SpringBoot集成Docker上Redis服務 在我的應用中, 希望能使用一些redis的特性:比如zset這樣的數(shù)據(jù)結構,如果能方便的在開...
摘要:一在文件中引入二配置地址等配置數(shù)據(jù)庫索引默認為服務器地址服務器連接端口服務器連接密碼默認為空連接池最大連接數(shù)使用負值表示沒有限制連接池最大阻塞等待時間使用負值表示沒有限制連接池中的最大空閑連接連接池中的最小空閑連接連接超時時 一、在pom文件中引入redis org.springframework.boot spring-boot-starter-redis ...
閱讀 1793·2023-04-25 15:51
閱讀 2502·2021-10-13 09:40
閱讀 2137·2021-09-23 11:22
閱讀 3247·2019-08-30 14:16
閱讀 2657·2019-08-26 13:35
閱讀 1852·2019-08-26 13:31
閱讀 880·2019-08-26 11:39
閱讀 2739·2019-08-26 10:33