1. 程式人生 > >Spring專案中新增Redis服務與快取同步問題

Spring專案中新增Redis服務與快取同步問題

一、Redis應用場景

     本專案使用redis對圖片進行快取儲存,展示圖片時,先根據圖片ID去Redis快取中查取,沒有再查資料庫,同時將該圖片set進Redis。

     使用spring 容器對Jedis進行管理。

二、Redis與Spring整合

1、新建applicationContext-jedis.xml配置檔案,用於配置Redis連線資訊和構造方法引數,例項化Jedis物件 

[html]  view plain
 copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
      
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
  7.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd  
  8.     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd  
  9.     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">  
  10.   
  11.   
  12.     <!-- 連線池配置 -->  
  13.     <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
  14.         <!-- 最大連線數 -->  
  15.         <property name="maxTotal" value="30" />  
  16.         <!-- 最大空閒連線數 -->  
  17.         <property name="maxIdle" value="10" />  
  18.         <!-- 每次釋放連線的最大數目 -->  
  19.         <property name="numTestsPerEvictionRun" value="1024" />  
  20.         <!-- 釋放連線的掃描間隔(毫秒) -->  
  21.         <property name="timeBetweenEvictionRunsMillis" value="30000" />  
  22.         <!-- 連線最小空閒時間 -->  
  23.         <property name="minEvictableIdleTimeMillis" value="1800000" />  
  24.         <!-- 連線空閒多久後釋放, 當空閒時間>該值 且 空閒連線>最大空閒連線數 時直接釋放 -->  
  25.         <property name="softMinEvictableIdleTimeMillis" value="10000" />  
  26.         <!-- 獲取連線時的最大等待毫秒數,小於零:阻塞不確定的時間,預設-1 -->  
  27.         <property name="maxWaitMillis" value="1500" />  
  28.         <!-- 在獲取連線的時候檢查有效性, 預設false -->  
  29.         <property name="testOnBorrow" value="true" />  
  30.         <!-- 在空閒時檢查有效性, 預設false -->  
  31.         <property name="testWhileIdle" value="true" />  
  32.         <!-- 連線耗盡時是否阻塞, false報異常,ture阻塞直到超時, 預設true -->  
  33.         <property name="blockWhenExhausted" value="false" />  
  34.     </bean>  
  35.   
  36.     <!-- jedis客戶端單機版 -->  
  37.    
  38.     <bean id="redisClient" class="redis.clients.jedis.JedisPool">  
  39.           
  40.         <constructor-arg name="host" value="192.168.132.128"></constructor-arg>  
  41.         <constructor-arg name="port" value="6379"></constructor-arg>  
  42.     </bean>   
  43.     <!-- 注入單機版bean -->  
  44.     <bean id="jedisClient" class="com.taotao.rest.dao.JedisClientSingle"/>  
  45.   
  46.   
  47.     <!-- 叢集版 -->  
  48.     <!-- <bean id="redisClient" class="redis.clients.jedis.JedisCluster">  
  49.         <constructor-arg name="nodes">  
  50.             <set>  
  51.                 <bean class="redis.clients.jedis.HostAndPort">  
  52.                     <constructor-arg name="host" value="192.168.132.128" />  
  53.                     <constructor-arg name="port" value="7001" />  
  54.                 </bean>  
  55.                 <bean class="redis.clients.jedis.HostAndPort">  
  56.                     <constructor-arg name="host" value="192.168.132.128" />  
  57.                     <constructor-arg name="port" value="7002" />  
  58.                 </bean>  
  59.                 <bean class="redis.clients.jedis.HostAndPort">  
  60.                     <constructor-arg name="host" value="192.168.132.128" />  
  61.                     <constructor-arg name="port" value="7003" />  
  62.                 </bean>  
  63.                 <bean class="redis.clients.jedis.HostAndPort">  
  64.                     <constructor-arg name="host" value="192.168.132.128" />  
  65.                     <constructor-arg name="port" value="7004" />  
  66.                 </bean>  
  67. 相關推薦

    Spring專案新增Redis服務快取同步問題

    一、Redis應用場景      本專案使用redis對圖片進行快取儲存,展示圖片時,先根據圖片ID去Redis快取中查取,沒有再查資料庫,同時將該圖片set進Redis。      使用spring&nb

    如何在web專案新增redis快取

    redis 是什麼?這個應該是你做一下工作的前提,不明白的可以百科一下。如果你大概明白了redis的工作原理。那麼請繼續往下看: 一。首先你需要明白,為什麼要在你的專案中使用redis快取? 現在很多應用程式要儲存結構簡單更新頻繁的資料,在我看來,字典表裡的資料就是儲存結構簡單且更新頻繁的資料,因

    spring專案新增@Transactional註解後出現NoSuchBeanDefinitionException異常的解決方法

    配置檔案裡這一句<tx:annotation-driven transaction-manager="transactionManager"/> 改成 <tx:annotation-driven transaction-manager="transac

    spring專案新增profile

    目錄 在spring專案新增profile 是很常見的事情 首先 在resource目錄下新建: application-dev.properties application-sit.properties application-ua

    Spring-Boot專案配置redis註解快取

    # Spring-Boot專案中配置redis註解快取 ## 在pom中新增redis快取支援依賴 ```xml org.springframework.boot spring-boot-starter-data-redis ``` ## 在yml中新增redis配置 > 設定快取

    【夯實Spring Cloud】Spring Cloud的Eureka服務註冊發現詳解

    本文屬於【夯實Spring Cloud】系列文章,該系列旨在用通俗易懂的語言,帶大家瞭解和學習Spring Cloud技術,希望能給讀者帶來一些乾貨。系列目錄如下: 【夯實Spring Cloud】Dubbo沉睡5年,Spring Cloud開始崛起! 【夯實Spring C

    Spring boot使用Redis實現快取功能

    1. Redis簡介 Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 Redis 可以儲存鍵與5種不同資料結構型別之間的對映,這5種資料結構型別分別為String(

    專案遇到的問題解決方法——持續新增

    問題解決之前不會,學習解決了之後怕忘記。 純屬為了方便自己回頭看,學習那些曾經不會的。持續新增。 1.要匯入Excel,但是獲取到的數字是科學計數法,比如11001000獲取到的是1.01+E7 // 把科學計數轉換成常規數字 String s=

    快取第四篇:在maven專案使用redis例項

    本節利用之前ssm+ehcache搭建好的ssm框架進行改造,其中的ehcache部分已經棄掉,防止ehcache快取的存在對這裡的redis快取的判斷。又整合了redis內容和日誌內容,利用控制檯日誌輸出看快取有沒有起作用。注意點比較多,我準備了差不多幾

    spring專案通過xml配置快取(cache)記錄貼

    配置一個spring預設實現的快取(cache)<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:

    向maven web專案新增spring mvc依賴的jar包

    使用maven進行專案管理的優勢之一就是maven可以幫我們管理專案建設中所使用的jar包,我們只需要在maven專案下的pox.xml中向dependencies下新增所需要的jar包資訊(包括groupId、artifactid、version)即可,這

    Spring CloudHystrix的服務降級異常處理

    上篇文章我們看了自定義Hystrix請求命令的問題,使小夥伴們對Hystrix的使用有了進一步的瞭解,之前兩篇文章都有涉及到一個叫做fallbackMethod的東西,我們之前沒有細說這個東西,今天我們就來詳細說說這個fallbackMethod,也就是服務降級

    Spring Boot引入Redis快取

    本文模擬兩種場景,一是使用Dao從資料庫讀取資料並快取,一是使用RedisTemplate操作快取。 1、Redis配置 pom.xml <dependency> <groupId>org.springframework.boot</groupId

    J2ee專案從0搭建(十一):在專案整合Redis,用於資料的儲存或者快取

    一、Redis安裝 已經安裝好redis的可以直接進入下一步,沒有的可以先進行安裝:Linux(CentOS 7)Redis 安裝 二、pom依賴: Jedis是redis的java版本的客戶端實現 <dependency> <group

    Java專案使用Redis快取案例

    快取的目的是為了提高系統的效能,快取中的資料主要有兩種:                 1.熱點資料。我們將經常訪問到的資料放在快取中,降低資料庫I/O,同時因為快取的資料的高速查詢,加快整個系統的響應速度,也在一定程度上提高併發量。                2.查詢

    SpringBoot專案使用redis快取

    1.概述 在應用中有效的利用redis快取可以很好的提升系統性能,特別是對於查詢操作,可以有效的減少資料庫壓力。 具體的程式碼參照該 示例專案 2.新增引用 在build.gradle加入 compile('org.springframewor

    spring boot 使用 Redis Log

    getclass spa databind amp cto ria statement database 英文 spring boot + mybatis + redis 配置 1.application.yml #配置訪問的URLserver: servlet-pa

    redisspring boot 使用redis hash 操作

    edi oar else .get als ash tcl del ima 示例: @Autowired StringRedisTemplate redisTemplate; @Override public void dealRedis(Dea

    spring boot 使用redis session

    錯誤 dap isa name art res 5.0 fir sync   spring boot 默認的httpsession是存在內存中。這種默認方式有幾個缺點:1、當分布式部署時,存在session不一致的問題;2、當服務重啟時session就會丟失,這時候用戶就需

    Spring Boot使用Redis資料庫實戰

    一 新增依賴 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>