中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

微信可以上網(wǎng)長沙正規(guī)競價優(yōu)化服務(wù)

微信可以上網(wǎng),長沙正規(guī)競價優(yōu)化服務(wù),wordpress 多國語言,奇跡網(wǎng)站建設(shè)多少錢一、介紹 1、簡介 RedisTemplate 是 Spring Data Redis 提供的一個高級抽象,由 Spring 官方提供的方便操作 Redis 數(shù)據(jù)庫的一個工具類,支持模板設(shè)計模式,使得操作 Redis 更加符合 Spring 的編程模型。還支持序列化機(jī)制,可以處理…

一、介紹

1、簡介

RedisTemplate 是 Spring Data Redis 提供的一個高級抽象,由 Spring 官方提供的方便操作 Redis 數(shù)據(jù)庫的一個工具類,支持模板設(shè)計模式,使得操作 Redis 更加符合 Spring 的編程模型。還支持序列化機(jī)制,可以處理 Java 對象的存取。其本質(zhì)屬于?Spring-Data?模塊下的?Spring-Data-Redis?部分,它提供了從 Spring 應(yīng)用程序輕松配置和訪問 Redis的功能。

2、原理

Spring-Data-Redis?是通過整合Lettuce和Jedis這倆種Redis客戶端產(chǎn)生的,對外則提供了RedisTemplate這樣統(tǒng)一的API來供調(diào)用者訪問。它既支持Luttuce的響應(yīng)式編程也支持JDK中集合的實(shí)現(xiàn)。

3、和Jedis的區(qū)別

Jedis 是一個用于直接與 Redis 服務(wù)器通信的 Java 客戶端庫,它提供了 Redis 所有基本功能的直接 API,需要手動管理連接(如創(chuàng)建 Jedis 實(shí)例和處理連接關(guān)閉等),并且需要在項(xiàng)目中引入 Jedis 的相關(guān) Maven 依賴,Jedis 適合需要精細(xì)控制 Redis 操作的場景,直接提供 Redis 命令的操作方式;

RedisTemplate 更加適合與 Spring 框架集成的應(yīng)用,提供了更高層次的抽象和便利的方法來簡化 Redis 操作。

具體選用客戶端還是模板,根據(jù)項(xiàng)目實(shí)際需要即可。

二、使用

1、引入依賴
        <!--Redis依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--連接池依賴--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.11.1</version></dependency>
2、配置連接

由于 RedisTemplate 是整合的Lettuce和Jedis,因此在配置連接池的時候需要進(jìn)行選擇是使用Lettuce還是Jedis(默認(rèn)是Lettuce)

#Redis cache setting
spring.data.redis.host=127.0.0.1
spring.data.redis.port=6379
spring.data.redis.password=
#最大連接數(shù)
spring.data.redis.lettuce.pool.max-active=8
#等待時長
spring.data.redis.lettuce.pool.max-wait=-1
#最大空閑連接
spring.data.redis.lettuce.pool.max-idle=8
#最小空閑連接
spring.data.redis.lettuce.pool.min-idle=0
spring.data.redis.lettuce.pool.enabled=true
spring.data.redis.lettuce.pool.time-between-eviction-runs=30s
3、使用

通過依賴注入就可以直接使用

    @Autowiredprivate RedisTemplate redisTemplate;@Testpublic void  testString(){String key = "name";//存String value = "這是value123";redisTemplate.opsForValue().set(key,value);//取Object valueObj = redisTemplate.opsForValue().get(key);System.out.println("value為:" + valueObj);}

執(zhí)行打印:value為:這是value123?

4、序列化

注意點(diǎn):上面存入的數(shù)據(jù)打開Redis圖形化工具查看發(fā)現(xiàn)是一堆亂碼

這是因?yàn)镽edis的序列化并沒有按照我們預(yù)期的進(jìn)行轉(zhuǎn)化,我們需要自己去重寫一個序列化,如下將key設(shè)置為String類型、value設(shè)置為json類型,最后將這個對象交給Spring管理,之后在調(diào)用該對象的時候就會自動選擇我們配置的這個:

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {//創(chuàng)建RedisTemplate對象RedisTemplate<String, Object> template = new RedisTemplate<>();//設(shè)置連接工廠template.setConnectionFactory(connectionFactory);//創(chuàng)建JSON序列化工具GenericJackson2JsonRedisSerializer jsonSerializer = new GenericJackson2JsonRedisSerializer();//設(shè)置key的序列化template.setKeySerializer(RedisSerializer.string());template.setHashValueSerializer(RedisSerializer.string());//設(shè)置value的序列化template.setValueSerializer(jsonSerializer);template.setHashValueSerializer(jsonSerializer);return template;}
}

?對于JSON序列化工具也需要引入依賴:

        <!--jackson依賴--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.17.1</version></dependency>

此時存儲正常:

redis的序列化方式有:

@Configuration
@EnableConfigurationProperties(RedisProperties.class)
public class RedisConfig {@Resource private LettuceConnectionFactory factory;@Bean(name = "redisTemplateForRateLimit")public RedisTemplate<String, Object> redisTemplate() {Assert.notNull(factory, "can not initialise [RedisConnectionFactory]");Jackson2JsonRedisSerializer<Object> jacksonSerializer =new Jackson2JsonRedisSerializer<>(Object.class);ObjectMapper objectMapper = getObjectMapper();jacksonSerializer.setObjectMapper(objectMapper);RedisTemplate<String, Object> template = new RedisTemplate<>();StringRedisSerializer serializer = new StringRedisSerializer();template.setKeySerializer(serializer);template.setHashKeySerializer(serializer);template.setValueSerializer(jacksonSerializer);template.setHashValueSerializer(jacksonSerializer);template.setDefaultSerializer(jacksonSerializer);template.setConnectionFactory(factory);template.afterPropertiesSet();return template;}
}

?三、API

RedisTemplate 提供了豐富的方法來實(shí)現(xiàn)對 Redis 的各種操作,包括但不限于字符串、哈希、列表、集合和有序集合等數(shù)據(jù)結(jié)構(gòu)的操作。以下是一些常用的 RedisTemplate API:

1、字符串操作
  • opsForValue().set(key, value): 設(shè)置字符串值。
  • opsForValue().get(key): 獲取字符串值。
  • opsForValue().incr(key): 字符串值自增。
  • opsForValue().decr(key): 字符串值自減。
2、哈希操作

opsForHash().getOperations().put(key, hashKey, value): 向哈希中添加鍵值對。
opsForHash().getOperations().get(key, hashKey): 獲取哈希中的值。
opsForHash().getOperations().entries(key): 獲取哈希中的所有鍵值對。

3、列表操作

opsForList().leftPush(key, value): 從列表左側(cè)添加元素。
opsForList().rightPush(key, value): 從列表右側(cè)添加元素。
opsForList().leftPop(key): 從列表左側(cè)彈出元素。
opsForList().rightPop(key): 從列表右側(cè)彈出元素。

4、集合操作
  • opsForSet().add(key, value): 向集合中添加元素。
  • opsForSet().members(key): 獲取集合中的所有元素。
  • opsForSet().remove(key, value): 從集合中移除元素。
5、有序集合操作

opsForZSet().add(key, value, score): 向有序集合中添加元素,并指定分?jǐn)?shù)。
opsForZSet().range(key, start, end): 獲取有序集合中指定分?jǐn)?shù)范圍內(nèi)的元素。
opsForZSet().removeRangeByScore(key, minScore, maxScore): 按分?jǐn)?shù)范圍移除有序集合中的元素。

6、鍵操作
  • delete(key): 刪除鍵。
  • hasKey(key): 檢查鍵是否存在。
  • keys(pattern): 根據(jù)模式匹配獲取所有鍵。
7、事務(wù)
  • multi(): 開啟事務(wù)。
  • exec(): 提交事務(wù)。
8、發(fā)布/訂閱
  • convertAndSend(channel, message): 發(fā)布消息。
  • subscribe(RedisMessageListenerContainer, MessageListener): 訂閱消息。
9、連接管理
  • getConnectionFactory(): 獲取連接工廠。
  • getExecutor(): 獲取執(zhí)行器。
10、序列化

  • setKeySerializer(Serializer): 設(shè)置鍵的序列化器。
  • setValueSerializer(Serializer): 設(shè)置值的序列化器。

更多操作可以查看官方提供的API文檔:RedisTemplate (Spring Data Redis 3.3.2 API)

http://www.risenshineclean.com/news/45737.html

相關(guān)文章:

  • wordpress主題mxblog廈門seo關(guān)鍵詞
  • 網(wǎng)站設(shè)計廣州鄭州建網(wǎng)站的公司
  • 網(wǎng)站開發(fā)成本有哪些網(wǎng)站建設(shè)軟件
  • 做采集的網(wǎng)站有流量嗎哈爾濱seo公司
  • 江蘇省兩學(xué)一做網(wǎng)站百度關(guān)鍵詞網(wǎng)站排名優(yōu)化軟件
  • 網(wǎng)站群 seosemaphore
  • 海外網(wǎng)站哪個最靠譜企業(yè)網(wǎng)站排名優(yōu)化公司
  • 蘇州移動網(wǎng)站建設(shè)網(wǎng)站建站價格
  • 挖金礦游戲網(wǎng)站建設(shè)seo搜索引擎營銷工具
  • 塑膠材料東莞網(wǎng)站建設(shè)友鏈提交入口
  • 大鵬網(wǎng)絡(luò)網(wǎng)站建設(shè)報價免費(fèi)國外ddos網(wǎng)站
  • 網(wǎng)頁傳奇游戲怎么徹底卸載北京網(wǎng)站seo設(shè)計
  • 公司名稱大全及最新網(wǎng)絡(luò)優(yōu)化器
  • 做網(wǎng)站接電話一般要會什么百度獲客平臺怎么收費(fèi)的
  • 佛山宣傳片制作網(wǎng)站seo優(yōu)化方案策劃書
  • 外貿(mào)哪個職位最吃香站內(nèi)seo優(yōu)化
  • html網(wǎng)站免費(fèi)模板河北網(wǎng)站seo外包
  • 怎么搭建釣魚網(wǎng)站軟件定制開發(fā)平臺
  • 建設(shè)項(xiàng)目銀行網(wǎng)站近一周的新聞大事熱點(diǎn)
  • 淘寶網(wǎng)請人做淘寶客網(wǎng)站谷歌seo搜索優(yōu)化
  • 深圳網(wǎng)站建設(shè)網(wǎng)站制作網(wǎng)站推廣濰坊seo網(wǎng)絡(luò)推廣
  • 網(wǎng)站有幾種類型vi設(shè)計
  • 二 網(wǎng)站建設(shè)的重要性今日頭條荊州新聞
  • 鞍山seo寧波網(wǎng)站關(guān)鍵詞優(yōu)化代碼
  • 婚戀網(wǎng)站翻譯可以做嗎模板建站常規(guī)流程
  • 企業(yè)網(wǎng)站開發(fā)注意什么百度電話查詢
  • 便利的邯鄲網(wǎng)站建設(shè)網(wǎng)站統(tǒng)計
  • 廣州做網(wǎng)站海珠新科優(yōu)化疫情防控措施
  • 做網(wǎng)站設(shè)計的成都市seo網(wǎng)站公司
  • 做項(xiàng)目掙錢的網(wǎng)站競價托管如何托管