Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.mihaicostin:hibernate-l2-memcached:v5.2.10.0'
}
dependencies {
implementation("com.github.mihaicostin:hibernate-l2-memcached:v5.2.10.0")
}
<dependency>
<groupId>com.github.mihaicostin</groupId>
<artifactId>hibernate-l2-memcached</artifactId>
<version>v5.2.10.0</version>
</dependency>
libraryDependencies += "com.github.mihaicostin" % "hibernate-l2-memcached" % "v5.2.10.0"
:dependencies [[com.github.mihaicostin/hibernate-l2-memcached "v5.2.10.0"]]
A library for using Memcached as a second level distributed cache in Hibernate.
To install it, you just need to add the following Maven dependency (check Versions for the right version for you):
<dependency>
<groupId>com.github.mihaicostin</groupId>
<artifactId>hibernate-l2-memcached</artifactId>
<version>5.4.2.1</version>
</dependency>
https://mvnrepository.com/artifact/com.github.mihaicostin/hibernate-l2-memcached
<property name="hibernate.cache.region.factory_class">com.mc.hibernate.memcached.MemcachedRegionFactory</property>
<property name="hibernate.memcached.operationTimeout">5000</property>
<property name="hibernate.memcached.connectionFactory">KetamaConnectionFactory</property>
<property name="hibernate.memcached.hashAlgorithm">FNV1_64_HASH</property>
If memcached authentication is required you can specify username and password:
<property name="hibernate.memcached.username">memcached-username</property>
<property name="hibernate.memcached.password">memcached-password</property>
If memcached are running on a remote server, e.g. on AWS ElastiCache, you can specify the connection URL:
<property name="hibernate.memcached.servers">cache.c3wd5k.cfg.euw1.cache.amazonaws.com:11211</property>
| Property | Default Value | |-------------------------------------------|---------------| | hibernate.memcached.servers| localhost:11211| | hibernate.memcached.operationQueueLength | (default provided by net.spy.memcached.DefaultConnectionFactory) | | hibernate.memcached.readBufferSize | (default provided by net.spy.memcached.DefaultConnectionFactory) | | hibernate.memcached.operationTimeout | (default provided by net.spy.memcached.DefaultConnectionFactory) | | hibernate.memcached.hashAlgorithm | NATIVE_HASH | | hibernate.memcached.connectionFactory | DefaultConnectionFactory | | hibernate.memcached.daemonMode | false | | hibernate.memcached.username | - | | hibernate.memcached.password | - |
| Property | Default Value | |-------------------------------------------|---------------| | hibernate.memcached.cacheTimeSeconds |300 | | hibernate.memcached.clearSupported |false | | hibernate.memcached.memcacheClientFactory | com.mc.hibernate.memcached.spymemcached.SpyMemcacheClientFactory | | hibernate.memcached.dogpilePrevention | false | | hibernate.memcached.dogpilePrevention.expirationFactor| 2 | | hibernate.memcached.keyStrategy | com.mc.hibernate.memcached.keystrategy.Sha1KeyStrategy |
In order to specify a property for a specific region add the region name right after memcached
. ex: hibernate.memcached.myregion.cacheTimeSeconds
Use the version compatible with your hibernate version (ex: Version 5.2.1.x is developed for and compatible with hibernate 5.2.1.Final)
v 5.4.2.0
hibernate.memcached.cacheLockTimeout
(defaults to 60.000 ms)v 1.1.0
Memcached client now respects the region timeout property Issue #1
<property name="hibernate.memcached.REGION.cacheTimeSeconds">10</property>