日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot配置Redis實現(xiàn)保存獲取和刪除數(shù)據(jù)

瀏覽:150日期:2023-03-01 18:44:08
目錄1 Redis2 Maven依賴3 application.propertis4 RedisConfig5 RedisService6 調(diào)試代碼 7 調(diào)試結果1 Redis

Redis 是完全開源的,遵守 BSD 協(xié)議,是一個高性能的 key-value 數(shù)據(jù)庫。

Redis 與其他 key - value 緩存產(chǎn)品有以下三個特點:

(1)Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進行使用。

(2)Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結構的存儲。

(2)Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

2 Maven依賴

<!--redis緩存--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> <!-- 阿里JSON解析器 --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version></dependency>3 application.propertis

# Redis數(shù)據(jù)庫索引(默認為0)spring.redis.database=0# Redis服務器地址spring.redis.host=127.0.0.1# Redis服務器連接端口spring.redis.port=6379# Redis服務器連接密碼(默認為空)spring.redis.password=# 連接池最大連接數(shù)(使用負值表示沒有限制)spring.redis.jedis.pool.max-active=20# 連接池最大阻塞等待時間(使用負值表示沒有限制)spring.redis.jedis.pool.max-wait=-1# 連接池中的最大空閑連接spring.redis.jedis.pool.max-idle=10# 連接池中的最小空閑連接spring.redis.jedis.pool.min-idle=0# 連接超時時間(毫秒)spring.redis.timeout=10004 RedisConfig

Redis配置文件。

package com.config; import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;import org.springframework.context.annotation.*;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer; @Configurationpublic class RedisConfig { @Bean @SuppressWarnings(value = { 'unchecked', 'rawtypes' }) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<Object, Object> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory); FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);// 使用StringRedisSerializer來序列化和反序列化redis的key值template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(serializer); // Hash的key也采用StringRedisSerializer的序列化方式template.setHashKeySerializer(new StringRedisSerializer());template.setHashValueSerializer(serializer); template.afterPropertiesSet();return template; }}5 RedisService

Redis基本操作方法。

package com.service; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.BoundSetOperations;import org.springframework.data.redis.core.HashOperations;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.stereotype.Service; import java.util.*;import java.util.concurrent.TimeUnit; @Servicepublic class RedisService { @Autowired private RedisTemplate redisTemplate; /** * 緩存基本的對象,Integer、String、實體類等 * * @param key 緩存的鍵值 * @param value 緩存的值 */ public <T> void setCacheObject(final String key, final T value) {redisTemplate.opsForValue().set(key, value); } /** * 緩存基本的對象,Integer、String、實體類等 * * @param key 緩存的鍵值 * @param value 緩存的值 * @param timeout 時間 * @param timeUnit 時間顆粒度 */ public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {redisTemplate.opsForValue().set(key, value, timeout, timeUnit); } /** * 設置有效時間 * * @param key Redis鍵 * @param timeout 超時時間 * @return true=設置成功;false=設置失敗 */ public boolean expire(final String key, final long timeout) {return expire(key, timeout, TimeUnit.SECONDS); } /** * 設置有效時間 * * @param key Redis鍵 * @param timeout 超時時間 * @param unit 時間單位 * @return true=設置成功;false=設置失敗 */ public boolean expire(final String key, final long timeout, final TimeUnit unit) {return redisTemplate.expire(key, timeout, unit); } /** * 獲得緩存的基本對象。 * * @param key 緩存鍵值 * @return 緩存鍵值對應的數(shù)據(jù) */ public <T> T getCacheObject(final String key) {ValueOperations<String, T> operation = redisTemplate.opsForValue();return operation.get(key); } /** * 刪除單個對象 * * @param key */ public boolean deleteObject(final String key) {return redisTemplate.delete(key); } /** * 刪除集合對象 * * @param collection 多個對象 * @return */ public long deleteObject(final Collection collection) {return redisTemplate.delete(collection); } /** * 緩存List數(shù)據(jù) * * @param key 緩存的鍵值 * @param dataList 待緩存的List數(shù)據(jù) * @return 緩存的對象 */ public <T> long setCacheList(final String key, final List<T> dataList) {Long count = redisTemplate.opsForList().rightPushAll(key, dataList);return count == null ? 0 : count; } /** * 獲得緩存的list對象 * * @param key 緩存的鍵值 * @return 緩存鍵值對應的數(shù)據(jù) */ public <T> List<T> getCacheList(final String key) {return redisTemplate.opsForList().range(key, 0, -1); } /** * 緩存Set * * @param key 緩存鍵值 * @param dataSet 緩存的數(shù)據(jù) * @return 緩存數(shù)據(jù)的對象 */ public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);Iterator<T> it = dataSet.iterator();while (it.hasNext()) { setOperation.add(it.next());}return setOperation; } /** * 獲得緩存的set * * @param key * @return */ public <T> Set<T> getCacheSet(final String key) {return redisTemplate.opsForSet().members(key); } /** * 緩存Map * * @param key * @param dataMap */ public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {if (dataMap != null) { redisTemplate.opsForHash().putAll(key, dataMap);} } /** * 獲得緩存的Map * * @param key * @return */ public <T> Map<String, T> getCacheMap(final String key) {return redisTemplate.opsForHash().entries(key); } /** * 往Hash中存入數(shù)據(jù) * * @param key Redis鍵 * @param hKey Hash鍵 * @param value 值 */ public <T> void setCacheMapValue(final String key, final String hKey, final T value) {redisTemplate.opsForHash().put(key, hKey, value); } /** * 獲取Hash中的數(shù)據(jù) * * @param key Redis鍵 * @param hKey Hash鍵 * @return Hash中的對象 */ public <T> T getCacheMapValue(final String key, final String hKey) {HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();return opsForHash.get(key, hKey); } /** * 獲取多個Hash中的數(shù)據(jù) * * @param key Redis鍵 * @param hKeys Hash鍵集合 * @return Hash對象集合 */ public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {return redisTemplate.opsForHash().multiGet(key, hKeys); } /** * 獲得緩存的基本對象列表 * * @param pattern 字符串前綴 * @return 對象列表 */ public Collection<String> keys(final String pattern) {return redisTemplate.keys(pattern); }}6 調(diào)試代碼

package com.controller; import com.service.RedisService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*; @RestController@RequestMapping('/redis')public class RedisController { @Autowired private RedisService redisService; /** * 保存Redis數(shù)據(jù) * * @param key * @param value * @return */ @PostMapping('/setValue/{key}/{value}') public String setValue(@PathVariable('key') String key, @PathVariable('value') String value) {redisService.setCacheObject(key, value);return '保存成功'; } /** * 獲取Redis數(shù)據(jù) * * @param key * @return */ @GetMapping('/getValue') public String getValue(@RequestParam String key) {return redisService.getCacheObject(key); } /** * 刪除Redis數(shù)據(jù) * * @param key * @return */ @DeleteMapping('/deleteValue/{key}') public String deleteValue(@PathVariable('key') String key) {return redisService.deleteObject(key) ? '刪除成功' : '刪除失敗'; }}7 調(diào)試結果

保存數(shù)據(jù):

SpringBoot配置Redis實現(xiàn)保存獲取和刪除數(shù)據(jù)

獲取數(shù)據(jù):

SpringBoot配置Redis實現(xiàn)保存獲取和刪除數(shù)據(jù)

刪除數(shù)據(jù):

SpringBoot配置Redis實現(xiàn)保存獲取和刪除數(shù)據(jù)

到此這篇關于SpringBoot配置Redis實現(xiàn)保存獲取和刪除數(shù)據(jù)的文章就介紹到這了,更多相關SpringBoot Redis保存獲取和刪除數(shù)據(jù)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲五月综合| 亚洲欧美视频| 日本成人手机在线| 一区二区三区四区在线观看国产日韩| 视频一区二区中文字幕| 久色成人在线| 日韩欧乱色一区二区三区在线| 日韩不卡一二三区| 欧美aa在线视频| 麻豆91精品视频| 韩日一区二区| 水蜜桃久久夜色精品一区| 国产成人精品福利| 久久久精品五月天| 欧美日韩精品一本二本三本 | 久久超碰99| 久久不见久久见免费视频7| 久久精品国产精品亚洲毛片| 国产va在线视频| 欧美日韩国产免费观看视频| 91精品国产91久久久久久黑人| 亚洲欧美一级| 国产精品nxnn| 在线综合视频| 麻豆国产精品| 免费看日韩精品| 国产一区二区三区四区| 蜜桃av一区二区三区电影| 国产伦久视频在线观看| 日韩欧美高清一区二区三区| 国产日韩高清一区二区三区在线 | 99久久亚洲精品蜜臀| 国产精品三上| 日本不卡在线视频| 高清久久精品| 五月天久久777| 综合干狼人综合首页| 欧美黑人巨大videos精品| 精品国产乱码久久久久久樱花| 久久激情一区| 天堂俺去俺来也www久久婷婷| 麻豆精品av| 激情综合网五月| 日本不卡视频在线观看| 国产精品毛片久久| 日本欧洲一区二区| 久久精品天堂| 久久成人国产| 国产精品一区二区99| 欧洲av一区二区| 日韩高清欧美激情| 成人va天堂| 亚洲欧美网站在线观看| 在线亚洲一区| 免费黄网站欧美| 国产精品久久久久77777丨| 欧美日韩水蜜桃| 日韩久久一区二区三区| 亚洲精品福利电影| 午夜久久黄色| 亚洲精品乱码| 久久精品国产成人一区二区三区| 日韩欧美精品综合| 欧洲一级精品| 欧美日韩国产一区二区在线观看| 日韩精品1区| 日韩极品在线观看| 久久亚洲专区| 日本亚洲最大的色成网站www| 天堂8中文在线最新版在线| 欧美久久精品| 久久都是精品| 日韩成人高清| 欧美日韩亚洲一区二区三区在线| 激情欧美一区二区三区| 美日韩一区二区三区| 爽好久久久欧美精品| 日韩精品久久久久久久电影99爱| 欧美激情日韩| 91国内精品| 水野朝阳av一区二区三区| 亚洲精品在线影院| 麻豆精品少妇| 免播放器亚洲一区| 久久国产电影| 精品三级av在线导航| 日韩精品中文字幕一区二区| av亚洲免费| 欧美成人基地| 日本精品黄色| 国产精品入口久久| 亚洲三区欧美一区国产二区| 亚洲夜间福利| 午夜久久中文| 高清久久精品| 久久精品国产亚洲aⅴ| 中文日韩欧美| 国产一区二区三区探花| 国产麻豆综合| 欧美91在线|欧美| 日韩精品免费视频一区二区三区| 日韩一区二区在线免费| 国产精品1区| 久久不见久久见国语| 欧美一级网站| 日本欧洲一区二区| 国产日韩视频| 亚洲精品美女91| 久久国产88| 亚洲精品1区2区| 99成人在线视频| 视频小说一区二区| 日本在线啊啊| 久久精品一区二区国产| 久久国产精品美女| 国产精品一区高清| 欧美日韩一区二区三区在线电影| 热久久久久久| 欧美一区网站| 欧美天堂一区| 国产精品久久久久久妇女| 国产精品传媒麻豆hd| 国产精品99久久久久久董美香| 国产欧美69| 精品三级国产| 偷拍精品精品一区二区三区| 天堂av在线| 久久蜜桃精品| 日韩av福利| 国产伊人精品| 国产精品毛片一区二区三区| 免费在线观看成人| 婷婷综合一区| 美女在线视频一区| 久久男人天堂| 激情五月综合网| 六月丁香综合| 日本国产一区| 久久久久黄色| 美女福利一区二区三区| 久久中文字幕二区| 丝袜国产日韩另类美女| 91精品视频一区二区| 欧美交a欧美精品喷水| 黑人精品一区| 亚洲免费观看| 日韩av一二三| 免费亚洲一区| 日韩伦理在线一区| 亚洲欧美日韩高清在线| 日韩影院精彩在线| 欧美日韩 国产精品| 精品72久久久久中文字幕| 国产亚洲一区二区手机在线观看| 在线观看免费一区二区| 日产欧产美韩系列久久99| 老司机精品视频网| 亚洲欧美综合| 中文一区一区三区免费在线观 | 91麻豆精品激情在线观看最新| 免费看久久久| 999久久久亚洲| 亚洲一级淫片| 久久99国产精品视频| 国产真实久久| 日韩av在线免费观看不卡| 久久av资源| 不卡一区2区| 欧美日本不卡高清| 日韩欧美网址| 最新国产精品| 麻豆精品在线播放| 激情五月色综合国产精品| 日韩精品成人在线观看| 成人小电影网站| 亚洲三级国产| av资源中文在线天堂| 亚洲精品成a人ⅴ香蕉片| 国产精品福利在线观看播放| 亚洲欧美日韩精品一区二区| 国产精品a级| 亚洲电影在线一区二区三区| 国产情侣久久| japanese国产精品| 国产精品videossex| 亚洲午夜电影| 久久国产尿小便嘘嘘| 亚洲va中文在线播放免费| 日韩精品福利一区二区三区| 美女网站视频一区| 国产精品亚洲人成在99www| 亚洲精品网址| 红杏一区二区三区| 日韩一区网站| 国产韩日影视精品| 精品亚洲自拍| 97精品久久| 亚洲欧美高清| 视频二区不卡| 久久精品国产福利|