1. 程式人生 > >hibernate redis 二級快取

hibernate redis 二級快取

文章整理上傳於2017年9月12日,此處貼出參考過的文章:

http://wzalong.iteye.com/blog/2324290

https://github.com/debop/hibernate-redis

1.環境要求

如果想要直接執行效果,需要有一個hibernate專案和redis叢集

springmvc+hibernate的專案:https://git.oschina.net/ffiing/springmvc_hibernate_base_maven_webapp.git

win7已經配置好的redis叢集:https://git.oschina.net/ffiing/win_redis_cluster_zip.git

win-redis叢集教程:http://blog.csdn.net/qq_34545192/article/details/77945678

2.maven依賴

<dependency> 
<groupId>com.github.debop</groupId> 
 <artifactId>hibernate-redis</artifactId> 
 <version>2.3.2</version> 
 </dependency>

3.hibernate.xml配置修改:

<!--hibernate.xml其他配置依舊,  開啟二級快取-->
<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">
    ${hibernate.cache.provider_configuration_file_resource_path}
</prop>
<prop key="hibernate.cache.region_prefix">${hibernate.cache.region_prefix}</prop>

# hibernate-redis.properties
#redisson-config=classpath:redisson.yaml#單例
redisson-config=classpath:redisson.json#叢集
# Cache Expiry settings
# 'hibernate' is second cache prefix
# 'common', 'account' is actual region name
redis.expiryInSeconds.default=120
redis.expiryInSeconds.hibernate.common=0
redis.expiryInSeconds.hibernate.account=1200


4.redisson.json(叢集版)和redisson.yaml(單例項版)配置:(二選一,可在配置.properties中修改啟動)

redisson.json(叢集版):

{
  "clusterServersConfig": {
    "idleConnectionTimeout": 10000,
    "pingTimeout": 1000,
    "connectTimeout": 10000,
    "timeout": 3000,
    "retryAttempts": 3,
    "retryInterval": 5000,
    "reconnectionTimeout": 5000,
    "failedAttempts": 3,
    "password": "123456",
    "subscriptionsPerConnection": 5,
    "clientName": null,
    "loadBalancer": {
      "class": "org.redisson.connection.balancer.RoundRobinLoadBalancer"
    },
    "slaveSubscriptionConnectionMinimumIdleSize": 1,
    "slaveSubscriptionConnectionPoolSize": 50,
    "slaveConnectionMinimumIdleSize": 5,
    "slaveConnectionPoolSize": 64,
    "masterConnectionMinimumIdleSize": 5,
    "masterConnectionPoolSize": 64,
    "readMode": "MASTER_SLAVE",
    "nodeAddresses": [
      "redis://127.0.0.1:7001",
      "redis://127.0.0.1:7002",
      "redis://127.0.0.1:7003",
      "redis://127.0.0.1:7004",
      "redis://127.0.0.1:7005",
      "redis://127.0.0.1:7006"
    ],
    "scanInterval": 5000
  },
  "threads": 0,
  "codec": {
    "class": "org.redisson.codec.SnappyCodec"
  },
  "useLinuxNativeEpoll": false
}

redisson.yaml(單例項):
singleServerConfig:
  idleConnectionTimeout: 10000
  pingTimeout: 5000
  connectTimeout: 5000
  timeout: 5000
  retryAttempts: 1
  retryInterval: 1000
  reconnectionTimeout: 3000
  failedAttempts: 1
  password: 123456
  subscriptionsPerConnection: 3
  clientName: null
  address: [
   "redis://127.0.0.1:6379"
   ]
  subscriptionConnectionMinimumIdleSize: 1
  subscriptionConnectionPoolSize: 3
  connectionMinimumIdleSize: 3
  connectionPoolSize: 3
  database: 0
  dnsMonitoring: false
  dnsMonitoringInterval: 5000
threads: 0
# Codec
codec: !<org.redisson.codec.SnappyCodec> {}
useLinuxNativeEpoll: false
eventLoopGroup: null

5.結束,錯誤請百度微笑,具體配置說明請參考開頭兩篇文章

相關推薦

hibernate redis 二級快取

文章整理上傳於2017年9月12日,此處貼出參考過的文章: http://wzalong.iteye.com/blog/2324290 https://github.com/debop/hibernate-redis 1.環境要求 如果想要直接執行效果,需要有一個hibe

redis作為hibernate二級快取

hibernate的二級快取有好多,像ehcache。不過專案的快取使用的是redis,而redis官方沒有實現hibernate的二級快取介面,只得自己實現。看看公司的高手如何做的吧。 先看配置: ? 1 2

Hibernate二級快取配置和原理

hibernate 的快取分為三大類,一級快取,二級快取和查詢快取 一級快取是hiSession級別的快取/事物快取,二級快取是Sessionfactory級別的快取 一級快取可以經過Sessionimpl類的兩個方法可以看出 actionQueue它是一個行動佇列,它主要記錄crud操作的相關資

【SSH網上商城專案實戰16】Hibernate二級快取處理首頁的熱門顯示

    轉自:https://blog.csdn.net/eson_15/article/details/51405911   網上商城首頁都有熱門商品,那麼這些商品的點選率是很高的,當用戶點選某個熱門商品後需要進入商品的詳細資訊頁面,就像淘寶裡面

hibernate二級快取

1、什麼是快取 快取是介於應用程式和物理資料來源之間,其作用是為了降低應用程式對物理資料來源訪問的頻次,從而提高了應用的執行效能。快取內的資料是對物理資料來源中的資料的複製,應用程式在執行時從快取讀寫資料,在特定的時刻或事件會同步快取和物理資料來源的資料。 快取的介質一般是記憶體,所以讀寫速

Java面試題:Hibernate二級快取Hibernate多表查詢

我們來看兩個有關Java框架之Hibernate的面試題,這是關於Hibernate的常考知識點。 1、請介紹一下Hibernate的二級快取 解題按照以下思路來回答: (1)首先說清楚什麼是快取; (2)再說有了hibernate的Session就是一級快取,即有了一級快取,為什麼還要有二級快取;

hibernate ehcache 二級快取

為什麼需要快取 拉高程式的效能 關係型資料庫:資料與資料之間存在關係(聯絡)的資料庫 mysql/Oracle、sqlserver 非關係型資料庫:資料與資料之間是不存在關係的,key-value 1、基於檔案儲存的資料庫:ehcache 2、基於記憶體儲存的資料庫:redis、m

hibernate二級快取(09)

為什麼需要快取 拉高程式的效能 關係型資料庫:資料與資料之間存在關係(聯絡)的資料庫 mysql/Oracle、sqlserver 非關係型資料庫:資料與資料之間是不存在關係的,key-value 1、基於檔案儲存的資料庫:ehcache 快取 2、基於記憶

hibernate二級快取

1、 為什麼需要快取 拉高程式的效能 關係型資料庫:資料與資料之間存在關係(聯絡)的資料庫 mysql/Oracle、sqlserver 非關係型資料庫:資料與資料之間是不存在關係的,key-value (1)、基於檔案儲存的資料庫:ehcache (2)、基於

hibernate二級快取和資料池的配置

  hibernate對連線池的支援 連線池,          作用: 管理連線;提升連線的利用效率!         

MyBatis -- 整合Redis二級快取

一。MyBatis一級二級快取      一級快取:     MyBatis一級快取為SqlSession級別的快取,預設開啟,相同的SqlSession物件查詢相同條件的結果時,如果存在一級快取,那麼只會訪問資料庫一次,一級快取在sqlSession關閉後失效,

Java面試原題:介紹一下hibernate二級快取

按照以下思路來回答: (1)、首先說清楚什麼是快取 (2)、再說有了hibernate的session就是一級快取,即:有了一級快取為什麼還要二級快取 (3)、最後在說如何配置hibernate的二級快取​ 滿分回答:​ ​1、快取就是把以前從資料庫中查詢出來和

這是我看過最好的對hibernate二級快取解析

很多人對二級快取都不太瞭解,或者是有錯誤的認識,我一直想寫一篇文章介紹一下hibernate的二級快取的,今天終於忍不住了。 我的經驗主要來自hibernate2.1版本,基本原理和3.0、3.1是一樣的,請原諒我的頑固不化。hibernate的session提供了一級快取

memcached分散式快取hibernate結合-- Hibernate+ehcache二級快取技術

Memcached是由Danga Interactive開發的,高效能的,分散式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提升訪問速度。Memcached 的快取是一種分散式的,可以讓不同主機上的多個使用者同時訪問, 因此解決了共享記憶體只能單機應用的侷限,更

Hibernate二級快取技術 EhCache

一、Ehcache簡介       EhCache是Hibernate的二級快取技術之一,可以把查詢出來的資料儲存在記憶體或者磁碟,節省下次同樣查詢語句再次查詢資料庫,大幅減輕資料庫壓力;       當用Hibernate對關係型資料庫表進行更改時(DELETE/UPDA

Spring Boot + Mybatis + Redis二級快取開發指南

背景Spring-Boot因其提供了各種開箱即用的外掛,使得它成為了當今最為主流的Java Web開發框架之一。Mybatis是一個十分輕量好用的ORM框架。Redis是當今十分主流的分散式key-value型資料庫,在web開發中,我們常用它來快取資料庫的查詢結果。本篇部落

Spring Boot + Mybatis + Redis二級快取例項

二級快取是多個SqlSession共享的,其作用域是mapper的同一個namespace,不同的sqlSession兩次執行相同namespace下的sql語句且向sql中傳遞引數也相同即最終執行相同的sql語句,第一次執行完畢會將資料庫中查詢的資料寫到快取(記憶體),第二次會從快取中獲取資

maven工程中hibernate二級快取ehcache的配置

2017-06-05 21:32:54 45242 <DEBUG> Result set row: 0 <org.hibernate.loader.Loader:org.hibernate.loader.Loader.processResultSet(Loader.java:952)(mai

Hibernate二級快取概述

SessionFactory是JVM程序級別的快取。 Session是事務執行緒級別的快取。 Hibernate還可以整合其他第三方快取,以在Session之外快取資料。 在Hibernate應用中配

SpringBoot+Mybatis環境下如何用Redis做Mybatis的二級快取

mybatis的一級快取和二級快取? 一級快取是SqlSession級別的快取。在操作資料庫時需要構造 sqlSession物件,在物件中有一個(記憶體區域)資料結構(HashMap)用於儲存快取資料。不同的sqlSession之間的快取資料區域(HashMap)是互相不影響的。