springboot---整合redis
pom.xml新增
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>代碼結構如下
其中redis.yml是連接redis的配置文件,RedisConfig.java是java配置類,RedisC.java是操作redis的java類
隨著Spring Boot2.x的到來,支持的組件越來越豐富,也越來越成熟,其中對Redis的支持不僅僅是豐富了它的API,更是替換掉底層Jedis的依賴,取而代之換成了Lettuce(生菜)
Lettuce和Jedis的都是連接Redis Server的客戶端程序。Jedis在實現(xiàn)上是直連redis server,多線程環(huán)境下非線程安全,除非使用連接池,為每個Jedis實例增加物理連接。Lettuce基于Netty的連接實例(StatefulRedisConnection),可以在多個線程間并發(fā)訪問,且線程安全,滿足多線程環(huán)境下的并發(fā)訪問,同時它是可伸縮的設計,一個連接實例不夠的情況也可以按需增加連接實例。
代碼如下
redis.yml
#redis redis:#redis機器iphostname: 127.0.0.1#redis端口port: 6379#redis密碼password:#redis超時時間(毫秒),如果不設置,取默認值2000timeout: 10000 #最大空閑數(shù)maxIdle: 300 #連接池的最大數(shù)據(jù)庫連接數(shù)。設為0表示無限制,如果是jedis 2.4以后用redis.maxTotal #maxActive=600 #控制一個pool可分配多少個jedis實例,用來替換上面的redis.maxActive,如果是jedis 2.4以后用該屬性maxTotal: 1000 #最大建立連接等待時間。如果超過此時間將接到異常。設為-1表示無限制。maxWaitMillis: 1000 #連接的最小空閑時間 默認1800000毫秒(30分鐘)minEvictableIdleTimeMillis: 300000 #每次釋放連接的最大數(shù)目,默認3numTestsPerEvictionRun: 1024 #逐出掃描的時間間隔(毫秒) 如果為負數(shù),則不運行逐出線程, 默認-1timeBetweenEvictionRunsMillis: 30000 #是否在從池中取出連接前進行檢驗,如果檢驗失敗,則從池中去除連接并嘗試取出另一個testOnBorrow: true #在空閑時檢查有效性, 默認falsetestWhileIdle: true#redis集群配置 #spring.cluster.nodes=192.168.1.1:7001,192.168.1.1:7002,192.168.1.1:7003,192.168.1.1:7004,192.168.1.1:7005,192.168.1.1:7006 #spring.cluster.max-redirects=3#哨兵模式 #sentinel.host1=192.168.1.1 #sentinel.port1=26379#sentinel.host2=192.168.1.2 #sentinel.port2=26379RedisConfig.java
package com.example.smybatis.configurer;import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;import java.io.Serializable;@Configuration @AutoConfigureAfter(RedisAutoConfiguration.class) public class RedisConfig {@Beanpublic RedisTemplate<String, Serializable> redisCacheTemplate(LettuceConnectionFactory redisConnectionFactory) {RedisTemplate<String, Serializable> template = new RedisTemplate<>();template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new GenericJackson2JsonRedisSerializer());template.setConnectionFactory(redisConnectionFactory);return template;} }RedisC.java
package com.example.smybatis.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class RedisC {@Autowiredprivate StringRedisTemplate stringRedisTemplate;//添加@GetMapping(value="/redisAdd")public void saveRedis(){stringRedisTemplate.opsForValue().set("a","test");}//獲取@GetMapping(value="/redisGet")public String getRedis(){return stringRedisTemplate.opsForValue().get("a");} }我們通過cmd重新打開一個客戶端重新連接redis,執(zhí)行操作,我們啟動服務,瀏覽器輸入http://localhost:1111/redisGet,如下圖,我們看到原本redis服務器key是空的,執(zhí)行操作之后,多了一個a
瀏覽器輸入http://localhost:1111/redisGet,就能看到我們剛才插入的key為a對應的值了
ok,操作完成
總結
以上是生活随笔為你收集整理的springboot---整合redis的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PageHelper工作原理
- 下一篇: MATLAB程序设计的绘图函数